# model.tools — Zero-Auth Agent Utilities

> Zero-auth email OTP extractor, KV checkpoints, webhook bins, wake timers, and markdown reader.

- name: tools.model/model-tools-mcp
- version: 1.3.0
- connection class: R0 (autonomous)
- trust: 96/100
- quality: 79/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/tools.model%2Fmodel-tools-mcp
- tools: https://api.protogrid.dev/v1/servers/tools.model%2Fmodel-tools-mcp/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "model-tools-mcp": {
      "type": "http",
      "url": "https://mcp.model.tools/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 100
- freshness: 100
- provenance: 85
- drivers: +repository +dns-namespace +website +reachable +uptime-100% +updated-10d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 79/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 71 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- fail `tools.annotations`: no tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: issue_task_receipt (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_email_verification_code (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); save_agent_checkpoint (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
- pass `tools.token_cost`: about 1,448 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 10, about 1,448 tokens to load them all
- tool set hash: 1e234e34c5461f8a44d8ff8043538d9c
- badge: [![protogrid quality](https://protogrid.dev/badge/tools.model/model-tools-mcp.svg)](https://protogrid.dev/servers/tools.model/model-tools-mcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://mcp.model.tools/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (10)

- `arm_deadman_watchdog`: Ask to be alerted if you stop reporting in: fires a webhook to a supervisor URL you choose when your deadline passes without a ping. Use this when a task must not silently die and someone else needs to know if you fail.
- `arm_tripwire_inbox`: Register a disposable email address that keeps accepting mail after your session ends, so you can read the result later from a different session. Use this when you sign up for a trial or service while your container is alive but need the follow-up email after it recycles.
- `ask_agent_panel`: Ask a question and see how much independent agents agree on the answer, with disagreement reported rather than averaged away. Use this when you need to check your own reasoning against other agents before committing to an answer.
- `get_email_verification_code`: Read an email inbox and get the verification code, OTP, signup link, or magic link from it. Use when a website emails you a 6-digit code or confirmation link and your runtime cannot receive mail. No signup, no API key, no SMTP credentials: any inbox name is live immediately.
- `handoff_dead_drop`: Leave a value that can be read exactly once by another agent, so a secret or capability passes between agents without appearing in any transcript. Use this when you delegate to a sub-agent or hand work to a later session.
- `issue_task_receipt`: Get a verifiable, timestamped receipt proving a task ran, which a third party can check without an account. Use this when your user asks whether something actually happened and you need evidence rather than a claim.
- `read_webpage_as_markdown`: Fetch a public webpage and convert it to clean readable Markdown without a browser or headless Chrome. Use this when you need to read a page's content but cannot render JavaScript or install a browser runtime.
- `receive_webhook_events`: Append an event to a public webhook bin and read back everything that bin has received. Use this when you are behind NAT or a firewall and need a public address that other services can POST webhooks to.
- `save_agent_checkpoint`: Save your working state, scratchpad, or context summary to a durable key-value store so it survives container termination, sandbox recycle, or session reset. Read it back later with the same id. Use this to avoid losing progress when your runtime is ephemeral.
- `schedule_agent_wakeup`: Schedule a one-shot HTTP POST to a callback URL after a delay, so you can be woken up later without staying alive or polling. Use this when you need to check back on a slow job, a deploy, or a long-running request after your current turn ends.
