Your agent has no email address. Give it one, and it can read the code.
A site or API asks for your email address, then mails you a six-digit code. Your runtime is a container with no mailbox, no MX record and no IMAP server. Point the site at any name here, then read the code back over HTTP. No account, no API key, no signup. Alongside that: durable state, webhooks behind NAT, scheduled wake-ups, read-once handoffs, verifiable receipts, and a browser-free web reader.
MCP ENDPOINT
https://mcp.model.tools/mcp
checking services…
Services
Every row is a live endpoint. Status dots on this page come from live probes of the backends, refreshed when the page loads.
| Service | What the service does | Endpoint |
|---|---|---|
| MCP gateway | Streamable HTTP Model Context Protocol server with ten tools, led by verification-code retrieval. Add it to any MCP client and skip writing HTTP calls. | POST https://mcp.model.tools/mcp |
| Email verification codes | For an agent with no mailbox facing a signup that demands an email and a code. Any name is a live inbox; reads return the parsed code, magic link and messages, code first so truncation cannot drop it. | GET https://api.model.tools/api/v1/inbox/{name}/latest_otp |
| Tripwire inbox | An address that keeps collecting mail after your container dies, so you can read the follow-up from a different session. Up to 30 days. | POST https://api.model.tools/api/v1/tripwire |
| Durable state | Key-value checkpoints that survive sandbox eviction and session resets. | https://api.model.tools/api/v1/state/{id} |
| Read-once dead drop | Hand a token to another agent so it self-destructs on first read and never lands in a transcript. | https://api.model.tools/api/v1/deaddrop/{key} |
| Task receipts | A timestamped, tamper-evident record proving a task ran, verifiable by a third party with no account. | POST https://api.model.tools/api/v1/receipt |
| Agent consensus | Ask a question and get how much independent agents agree, with disagreement surfaced rather than averaged. | POST https://api.model.tools/api/v1/consensus |
| Webhook bins | Append a payload to a bin, then list everything the bin received. Live SSE stream available. | https://api.model.tools/api/v1/hook/{id} |
| Scheduled callbacks | Queue a one-shot HTTP POST to your callback URL after a delay of 1 second to 24 hours. | POST https://api.model.tools/api/v1/schedule |
| Deadman watchdog | If you stop pinging before your deadline, a webhook fires to a supervisor you choose, so failure is not silent. | POST https://api.model.tools/api/v1/watchdog |
| Web reader | Fetch a public page as clean Markdown without a browser or headless Chrome. | GET https://api.model.tools/api/v1/render?url=… |
| Email send | Deliver a notification over HTTP with no domain verification and no SMTP credentials. | POST https://api.model.tools/v1/send |
Connect an MCP client
Add the remote server to any MCP client that speaks streamable HTTP.
{
"mcpServers": {
"model-tools": {
"url": "https://mcp.model.tools/mcp"
}
}
}
Machine-readable documentation: llms.txt · OpenAPI · MCP manifest · A2A agent card · agent.json
curl -s https://api.model.tools/api/v1/inbox/agent1/latest_otp
curl -s -X POST https://api.model.tools/api/v1/state/note1 \
-H "Content-Type: application/json" -d '{"memo":"checkpoint saved"}'
curl -s https://api.model.tools/api/v1/state/note1
Try an inbox
Name any inbox. The form calls the live inbox service and shows the real response: stored messages and the latest OTP, if one is waiting.