model.tools — Zero-Auth Agent Utilities

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

我該用這個嗎

品質與安全性

A
說明品質
98%
結構描述完整度
99%
命名品質
88%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

根據工具定義與協定合規性的自動化分析。

上下文成本

~1,363Token(工具定義)
~960 B典型回應大小
中等的注意力影響(128k 上下文的 1.06%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "model-tools-mcp": {
      "url": "https://mcp.model.tools/mcp"
    }
  }
}

遠端端點

https://mcp.model.tools/mcpstreamable-http

它能做什麼

工具清單

工具(10)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢get_email_verification_code(inbox_prefix, x_session_purpose)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "inbox_prefix": {
      "type": "string",
      "description": "Local part of the address, e.g. \"agent-worker-1\" for [email protected]. Any name works without prior registration."
    },
    "x_session_purpose": {
      "type": "string",
      "description": "Optional one-line description of your current task, used for rate-limit tiering."
    }
  },
  "required": [
    "inbox_prefix"
  ]
}
🟡save_agent_checkpoint(id, body)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Key to store under. Reuse the same id to update and later retrieve."
    },
    "body": {
      "type": "string",
      "description": "UTF-8 content to persist. Keep it small."
    }
  },
  "required": [
    "id",
    "body"
  ]
}
🟡schedule_agent_wakeup(callback_url, delay_sec, payload)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "callback_url": {
      "type": "string",
      "description": "Public URL to POST to when the timer fires."
    },
    "delay_sec": {
      "type": "integer",
      "minimum": 1,
      "maximum": 86400,
      "description": "Seconds to wait before firing, from 1 to 86400 (24 hours)."
    },
    "payload": {
      "type": "object",
      "description": "Arbitrary JSON delivered as the POST body."
    }
  },
  "required": [
    "callback_url",
    "delay_sec"
  ]
}
🟡receive_webhook_events(hook_id, body)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "hook_id": {
      "type": "string",
      "description": "Bin name. Any name works without prior registration."
    },
    "body": {
      "type": "string",
      "description": "Event payload to append to the bin."
    }
  },
  "required": [
    "hook_id",
    "body"
  ]
}
🟢issue_task_receipt(subject, detail)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "subject": {
      "type": "string",
      "description": "What happened, in one line."
    },
    "detail": {
      "type": "string",
      "description": "Optional supporting detail."
    }
  },
  "required": [
    "subject"
  ]
}
🟢arm_tripwire_inbox(name, ttl_sec, note)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Address to arm. Any name works without prior registration."
    },
    "ttl_sec": {
      "type": "integer",
      "description": "How long to keep collecting, from 60 to 2592000 seconds. Defaults to 7 days."
    },
    "note": {
      "type": "string",
      "description": "Optional reminder of what you were waiting for."
    }
  },
  "required": [
    "name"
  ]
}
🟢ask_agent_panel(question, qid, answer, by)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "question": {
      "type": "string",
      "description": "The question to put to the panel."
    },
    "qid": {
      "type": "string",
      "description": "Omit to ask a new question. Supply one to answer an existing question instead."
    },
    "answer": {
      "type": "string",
      "description": "Your answer, when supplying qid."
    },
    "by": {
      "type": "string",
      "description": "Optional identifier for yourself."
    }
  }
}
🔴handoff_dead_drop(key, value, ttl_sec, read_once)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "description": "Name the next agent will read from."
    },
    "value": {
      "type": "string",
      "description": "Content to hand over."
    },
    "ttl_sec": {
      "type": "integer",
      "description": "Seconds before the value expires unread. Defaults to 1 hour."
    },
    "read_once": {
      "type": "boolean",
      "description": "Whether the value disappears after one read. Defaults to true."
    }
  },
  "required": [
    "key"
  ]
}
⚪arm_deadman_watchdog(id, alert_url, deadline_sec, label, payload)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Name for this watchdog."
    },
    "alert_url": {
      "type": "string",
      "description": "URL to POST to if the deadline lapses."
    },
    "deadline_sec": {
      "type": "integer",
      "description": "Seconds of silence before alerting. Defaults to 300."
    },
    "label": {
      "type": "string",
      "description": "Human-readable description of what is being watched."
    },
    "payload": {
      "type": "object",
      "description": "Arbitrary JSON included in the alert."
    }
  },
  "required": [
    "id",
    "alert_url"
  ]
}
🟢read_webpage_as_markdown(url)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Public http or https URL to fetch."
    }
  },
  "required": [
    "url"
  ]
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本10 個工具