Motorical

AI & MCP · Agent-native email

Give your agent a sending stream, not your production credentials.

Motorical ships a Model Context Protocol server and a matching CLI. An agent in Cursor or Claude Desktop can provision an isolated sandbox, send a test message, verify a domain, and read that Motor Block's own delivery analytics — without touching the account you send production mail from.
Sandbox before DNS

motorical_sandbox_provision gives you a Motor Block on *.sandbox.motorical.com with outbound locked to an allowlist. Send real mail to yourself before you own a domain, then convert onto a verified one.

Dry run by default

motorical_send_email defaults to dryRun:true. A real send needs dryRun:false AND confirmRealSend:true — two explicit signals, so an agent cannot mail your users by accident.

The agent can read the spec

The server registers the live OpenAPI document as an MCP resource (motorical-openapi), alongside llms.txt. Your agent works from the current contract instead of guessing at it.

Per-block analytics, not a shared feed

Message timelines and delivery events are scoped to the Motor Block the agent is working in. Debugging one project never means reading another project’s traffic.

A CLI twin

Everything the MCP server does, @motorical/cli does from a shell — signup, verify, sandbox provision, send, domain add/verify/check-dns, and convert. Node 20+.

Domain setup is a tool call

motorical_domain_add returns the exact DNS records, motorical_domain_verify confirms ownership, and motorical_domain_check_dns flips the send-ready flags once DNS propagates.

How it works

1

Install

npm install -g https://docs.motorical.com/motorical-mcp.tgz — or point your editor at the downloadable Cursor config.

2

Provision

Ask the agent to provision a sandbox. It returns an mk_live_ key once, scoped to an outbound-locked Motor Block.

3

Send

A dry run validates the payload. Add confirmRealSend to actually deliver, then read the message timeline back.

4

Graduate

Add your domain, verify it, check DNS, and convert the sandbox Motor Block onto it.

The 13 tools

@motorical/mcp v1.0.5. The server also registers one prompt (motorical_integrate_send) and two resources — motorical-llms and motorical-openapi.

ToolWhat it does
motorical_get_send_statusSend API status (GET /v1/status). No auth required.
motorical_mint_public_tokenMint a short-lived Public Analytics bearer token for /api/public/v1 logs, analytics, webhooks and config.
motorical_list_motor_blocksList the Motor Blocks — isolated sending streams — visible to a token.
motorical_send_emailSend or validate via POST /v1/send. Defaults to a dry run; a real send needs dryRun:false AND confirmRealSend:true.
motorical_get_messageFetch a message by its send UUID.
motorical_get_message_eventsDelivery lifecycle events for one message.
motorical_sandbox_statusSandbox status — domain, Motor Block, outbound lock, allowlist.
motorical_sandbox_provisionProvision an unpaid sandbox on *.sandbox.motorical.com with an outbound-locked Motor Block.
motorical_sandbox_convertMove a sandbox Motor Block onto a verified domain of your own.
motorical_domain_addAdd a domain and get back its verification DNS instructions.
motorical_domain_verifyVerify ownership and refresh DKIM/SPF/DMARC send-readiness; returns sendReady.
motorical_domain_check_dnsLive-check DKIM/SPF/DMARC and persist the configured flags once your DNS is live.
motorical_web_handoffMint a one-time CLI-to-browser handoff URL so a human can finish in the dashboard.

Or drive it from a shell

npm install -g https://docs.motorical.com/motorical-cli.tgz

motorical signup you@example.com     # emails a 6-digit code
motorical verify 123456              # redeem it — this mints the JWT
motorical sandbox provision          # outbound-locked sandbox Motor Block
motorical send --to you@example.com \
  --from hello@<handle>.sandbox.motorical.com --real

send is a dry run without --real. Requires Node 20+.

Frequently asked questions

Anything that speaks the Model Context Protocol over stdio — Cursor and Claude Desktop are the common ones. A ready-made config is published at motorical-mcp.cursor.json.

Only deliberately. Sends are dry-run by default, and a sandbox Motor Block is outbound-locked to an allowlist you control, so the blast radius before you convert to a real domain is limited to addresses you have approved.

No. The developer sandbox is unpaid. Converting a sandbox Motor Block onto a domain you own requires an active plan.

No — it is the same surface at the same version. Use the MCP server when an agent drives, the CLI when you or CI does.

Give your agent a sending stream, not your production credentials.