Skip to content

agmail

by shveik.dev · remote · no sign-in to list tools · v1.0.0 · published by dev.shveik

Email inboxes for agents by the hour: wait for a mail, get the code or link. Pay per call.

Deletes · 1Changes · 4

9 tools: 1 can delete or cancel things, 4 change things and 4 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http agmail https://agmail.shveik.dev/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "delete_inbox" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "delete_inbox" says "delete": a word for removing or ending something.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

9 tools

Deletes or cancels 1Claude Code: deny
  • delete_inboxDelete an inbox and all its mail now.1 finding

    Why it is in this group

    • The name "delete_inbox" says "delete": a word for removing or ending something.
    • The server marks it not destructive (destructiveHint: false), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "delete_inbox" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "delete_inbox" says "delete": a word for removing or ending something.

      What this check looks for
    Description, as the server wrote it
    Delete an inbox and all its mail now. There is no refund. Free; needs the inbox id and secret.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • readOnlyHint: false
Changes things 4Claude Code: ask
  • check_nameCheck whether a name is free to use as the local part of an address, before buying an inbox.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Check whether a name is free to use as the local part of an address, before buying an inbox. Free.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • readOnlyHint: true
  • create_inboxBuy an email address for an hour, four hours or a day: name@agmail.shveik.dev with the name you choose (or a random one).No findings

    Why it is in this group

    • The name "create_inbox" says "create": a word for a change.
    Description, as the server wrote it
    Buy an email address for an hour, four hours or a day: name@agmail.shveik.dev with the name you choose (or a random one). Paid in stablecoins with x402: call it without a payment to get the quote, then again with the signed payment in _meta. The result has the inbox id and the secret (shown once, keep it); the inbox takes mail once the payment has settled.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • readOnlyHint: false
  • extend_inboxExtend an inbox you own by one, four or twenty-four hours, keeping its address and its mail.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Extend an inbox you own by one, four or twenty-four hours, keeping its address and its mail. Paid in stablecoins with x402 like create_inbox. Needs the inbox id and its secret. An inbox cannot be paid for more than 72 hours ahead.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • readOnlyHint: false
  • feedbackFree.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Free. Tell the people who run this service what worked, what failed or what you miss: a bug, an idea or a thanks. A person reads it. No payment, no account; limited to a few messages an hour.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • readOnlyHint: false
Only reads 4Claude Code: allow
  • get_otpWait for a message that carries a verification code or link and return only the code and the link.No findings

    Why it is in this group

    • The name "get_otp" says "get": a word for reading.
    Description, as the server wrote it
    Wait for a message that carries a verification code or link and return only the code and the link. Free; needs the inbox id and secret.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • readOnlyHint: true
  • list_messagesList the messages of an inbox (sender, subject, size) after a sequence number.No findings

    Why it is in this group

    • The name "list_messages" says "list": a word for reading.
    Description, as the server wrote it
    List the messages of an inbox (sender, subject, size) after a sequence number. Free; needs the inbox id and secret.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • readOnlyHint: true
  • read_messageRead one message of an inbox: its text, codes, links and attachment names.No findings

    Why it is in this group

    • The name "read_message" says "read": a word for reading.
    Description, as the server wrote it
    Read one message of an inbox: its text, codes, links and attachment names. Free; needs the inbox id and secret.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • readOnlyHint: true
  • wait_for_messageWait until a message arrives in an inbox (up to 55 seconds) and return it with its text, codes and links.No findings

    Why it is in this group

    • The name "wait_for_message" says "wait": a word for reading.
    Description, as the server wrote it
    Wait until a message arrives in an inbox (up to 55 seconds) and return it with its text, codes and links. Returns at once if a matching message is already there. Free; needs the inbox id and secret.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • readOnlyHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http agmail https://agmail.shveik.dev/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__agmail__wait_for_message",
      "mcp__agmail__get_otp",
      "mcp__agmail__list_messages",
      "mcp__agmail__read_message"
    ],
    "ask": [
      "mcp__agmail__check_name",
      "mcp__agmail__create_inbox",
      "mcp__agmail__extend_inbox",
      "mcp__agmail__feedback"
    ],
    "deny": [
      "mcp__agmail__delete_inbox"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as agmail. Review it before you use it.