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,363토큰 (도구 정의)
~960 B일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.06%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`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개