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.
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 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.
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.
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+.
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.
npm install -g https://docs.motorical.com/motorical-mcp.tgz — or point your editor at the downloadable Cursor config.
Ask the agent to provision a sandbox. It returns an mk_live_ key once, scoped to an outbound-locked Motor Block.
A dry run validates the payload. Add confirmRealSend to actually deliver, then read the message timeline back.
Add your domain, verify it, check DNS, and convert the sandbox Motor Block onto it.
@motorical/mcp v1.0.5. The server also registers one prompt (motorical_integrate_send) and two resources — motorical-llms and motorical-openapi.
| Tool | What it does |
|---|---|
| motorical_get_send_status | Send API status (GET /v1/status). No auth required. |
| motorical_mint_public_token | Mint a short-lived Public Analytics bearer token for /api/public/v1 logs, analytics, webhooks and config. |
| motorical_list_motor_blocks | List the Motor Blocks — isolated sending streams — visible to a token. |
| motorical_send_email | Send or validate via POST /v1/send. Defaults to a dry run; a real send needs dryRun:false AND confirmRealSend:true. |
| motorical_get_message | Fetch a message by its send UUID. |
| motorical_get_message_events | Delivery lifecycle events for one message. |
| motorical_sandbox_status | Sandbox status — domain, Motor Block, outbound lock, allowlist. |
| motorical_sandbox_provision | Provision an unpaid sandbox on *.sandbox.motorical.com with an outbound-locked Motor Block. |
| motorical_sandbox_convert | Move a sandbox Motor Block onto a verified domain of your own. |
| motorical_domain_add | Add a domain and get back its verification DNS instructions. |
| motorical_domain_verify | Verify ownership and refresh DKIM/SPF/DMARC send-readiness; returns sendReady. |
| motorical_domain_check_dns | Live-check DKIM/SPF/DMARC and persist the configured flags once your DNS is live. |
| motorical_web_handoff | Mint a one-time CLI-to-browser handoff URL so a human can finish in the dashboard. |
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+.
Which editors does this work with?
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.
Can the agent send real email to real people?
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.
Do I need a paid plan to try it?
No. The developer sandbox is unpaid. Converting a sandbox Motor Block onto a domain you own requires an active plan.
Is the CLI a separate product?
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.