_ registry / mcp streamable-http · checked 2h ago

email59

https://email59.com

Registry code: 02c4265f278a6bac

api record

email59 routes transactional and marketing email for developers and bots. 200 emails a day free, renewed daily; every $1 buys 3,636 email credits that last until used. To sign up or sign in, call auth with your email, then call auth again with the email and the 6-digit otp from the email. Send the returned session_key as 'Authorization: Bearer <session_key>' on every later request (an e59_live_ API key works too). Mail is sent from your name @email59.com; there is no domain to set up.

endpoint
https://email59.com/v1/mcp
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is email59 live?
Yes — it answered the hub's last check (checked 2h ago). It answered 100% of checks over the last 30 days.
Is email59 free to use?
Not anonymously — it asks for a key or a login before it will serve. Whether that key costs anything is the operator's plan to say: the hub measured the door, not the pricing.
What tools does email59 have?
20 tools: check_list, get_account, list_blocklist, auth, get_pricing, send_email, send_campaign, check_email, ….
Is email59 safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
100%

90 days 100%· all time 100%

latency
335ms

last good check

priced tools
0

of 20 tools

_ answered our checks, 90 days 1 checks · signed record
  • unknown → live
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 20 tools
20 auth-required 20 of 20 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • check_list auth-required 2h ago

    List check for a mailing list: up to 1,000 different addresses a call, as emails or the text of a CSV (the column headed email). One status each: valid, risky, role, disposable, no_mx or invalid, with a reason, plus counts per status. Format, provider rules and one MX lookup per domain; no email is sent. Daily limit per account; the answer's quota shows what is left today.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "csv": {
          "type": "string",
          "description": "Or a CSV file's text with an email column."
        },
        "emails": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Addresses to check."
        }
      }
    }
    arguments 16 lines
  • get_account auth-required 2h ago

    The signed-in account: email, daily_limit, sent_today, remaining_today, credits_remaining, resets_at.

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
  • list_blocklist auth-required 2h ago

    The account's blocked addresses and domains.

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
  • auth auth-required never probed

    Sign up or sign in to email59. Pass email to have a 6-digit code emailed, then call again with email and otp to get a session key (a new email is signed up with 200 free emails a day). Or pass api_key to swap an API key for a session key. Send the key as the HTTP header 'Authorization: Bearer <session_key>'.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "otp": {
          "type": "string",
          "description": "The 6-digit code from the email."
        },
        "email": {
          "type": "string",
          "description": "Email address."
        },
        "api_key": {
          "type": "string",
          "description": "An e59_live_ API key, instead of email."
        }
      }
    }
    arguments 17 lines
  • get_pricing auth-required never probed

    Free daily emails (renewed every day), email credits per dollar, and the packs on sale. No sign-in needed.

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
  • send_email auth-required never probed

    Send one email to one recipient: transactional (receipt, code, alert) or marketing (category). It goes out as HTML in a branded template with a text part; give text, html or both. Uses 1 email of today's allowance. Many recipients at once: send_campaign.

    mcp-tool

    {
      "type": "object",
      "required": [
        "to",
        "subject"
      ],
      "properties": {
        "to": {
          "type": "string",
          "description": "Recipient address."
        },
        "code": {
          "type": "string",
          "description": "The code for template code."
        },
        "from": {
          "type": "string",
          "description": "Name before the @ (e.g. hello). The domain is always email59.com. Optional."
        },
        "html": {
          "type": "string",
          "description": "HTML body."
        },
        "text": {
          "type": "string",
          "description": "Plain-text body. Give text, html or both."
        },
        "brand": {
          "type": "object",
          "properties": {
            "url": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "color": {
              "type": "string"
            },
            "address": {
              "type": "string"
            },
            "logo_url": {
              "type": "string"
            }
          },
          "description": "This email's look; the account's brand otherwise."
        },
        "heading": {
          "type": "string"
        },
        "list_id": {
          "type": "string",
          "description": "Marketing only: your name for the audience."
        },
        "subject": {
          "type": "string"
        },
        "category": {
          "enum": [
            "transactional",
            "marketing"
          ],
          "type": "string",
          "description": "Default transactional. marketing: always has the unsubscribe link and skips role addresses and people who unsubscribed."
        },
        "reply_to": {
          "type": "string",
          "description": "Optional. One address of your own (not at email59.com) where answers should go. Without it the email says replies are not received."
        },
        "template": {
          "enum": [
            "basic",
            "code",
            "notice",
            "report",
            "letter"
          ],
          "type": "string",
          "description": "Layout. basic (default), code (one-time code, give code), notice (heading and one button), report (wide tables), letter (personal)."
        },
        "preheader": {
          "type": "string",
          "description": "Preview text shown after the subject."
        },
        "button_url": {
          "type": "string"
        },
        "button_text": {
          "type": "string"
        }
      }
    }
    arguments 93 lines
  • send_campaign auth-required never probed

    Send a marketing email to up to 1,000 recipients; the unsubscribe link is added for you. Invalid, role, blocked or unsubscribed recipients are skipped and cost nothing; each accepted recipient uses 1 email of today's allowance. A campaign that doesn't fit what's left today is refused whole.

    mcp-tool

    {
      "type": "object",
      "required": [
        "subject",
        "recipients"
      ],
      "properties": {
        "from": {
          "type": "string",
          "description": "Name before the @ (e.g. hello). The domain is always email59.com. Optional."
        },
        "html": {
          "type": "string"
        },
        "text": {
          "type": "string"
        },
        "list_id": {
          "type": "string",
          "description": "Your name for this audience, used for unsubscribes."
        },
        "subject": {
          "type": "string"
        },
        "recipients": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Recipient addresses (max 1,000)."
        }
      }
    }
    arguments 33 lines
  • check_email auth-required never probed

    Free deep check of an email address, no sign-in needed: format, provider username rules, disposable and role addresses, and the domain's MX, SPF, DMARC, DKIM, MTA-STS, TLS-RPT and BIMI records. Returns a report with a score (0-99, likelihood the address is real) and a verdict (likely_valid, risky, likely_invalid, unknown). Gmail, Outlook and other big providers skip DNS. No email is sent.

    mcp-tool

    {
      "type": "object",
      "required": [
        "email"
      ],
      "properties": {
        "email": {
          "type": "string",
          "description": "Email address."
        }
      }
    }
    arguments 12 lines
  • block auth-required never probed

    Block an email address or a whole domain for this account. Sends to it are refused.

    mcp-tool

    {
      "type": "object",
      "required": [
        "kind",
        "value"
      ],
      "properties": {
        "kind": {
          "enum": [
            "email",
            "domain"
          ],
          "type": "string"
        },
        "value": {
          "type": "string",
          "description": "The address or domain."
        },
        "reason": {
          "type": "string"
        }
      }
    }
    arguments 23 lines
  • unblock auth-required never probed

    Remove an email address or domain from the blocklist.

    mcp-tool

    {
      "type": "object",
      "required": [
        "kind",
        "value"
      ],
      "properties": {
        "kind": {
          "enum": [
            "email",
            "domain"
          ],
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      }
    }
    arguments 19 lines
  • add_unsubscribe auth-required never probed

    Record an opt-out. Campaigns to that list (or every list, if list_id is empty) skip the address.

    mcp-tool

    {
      "type": "object",
      "required": [
        "email"
      ],
      "properties": {
        "email": {
          "type": "string",
          "description": "Email address."
        },
        "list_id": {
          "type": "string",
          "description": "Empty = every list."
        }
      }
    }
    arguments 16 lines
  • buy_pack auth-required never probed

    Start buying a pack (pack_5 = $5, pack_10 = $10, pack_50 = $50; each $1 adds 3,636 email credits, which don't renew and last until used, plus a purchase fee of 5% or at least $0.50 at checkout; GET /v1/pricing has the totals). Returns a checkout_url for a person to pay; the credits arrive once the payment clears. First show the person the refund policy and terms from GET /v1/policy; pass agree=true and its version only after they agree.

    mcp-tool

    {
      "type": "object",
      "required": [
        "pack_id",
        "agree",
        "policy_version"
      ],
      "properties": {
        "agree": {
          "type": "boolean",
          "description": "The person agreed to the refund policy and terms (GET /v1/policy)"
        },
        "pack_id": {
          "type": "string"
        },
        "policy_version": {
          "type": "string",
          "description": "version from GET /v1/policy"
        }
      }
    }
    arguments 21 lines
  • create_api_key auth-required never probed

    Create a long-lived API key (max 10 per account). It is shown only once. mode 'test' makes an e59_test_ key for staging and CI: its sends are accepted and stored, never delivered, and use no allowance.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "mode": {
          "enum": [
            "live",
            "test"
          ],
          "type": "string",
          "description": "Default live."
        },
        "label": {
          "type": "string"
        }
      }
    }
    arguments 16 lines
  • list_test_messages auth-required never probed

    Emails sent with a test key (e59_test_...), newest first: accepted, stored, never delivered. Pass id for one email with its html and text (a verify_start code is in there), or to to filter by recipient.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "A test email id (test_...). Optional."
        },
        "to": {
          "type": "string",
          "description": "Only emails to this address. Optional."
        },
        "limit": {
          "type": "integer",
          "description": "Default 50, at most 100."
        }
      }
    }
    arguments 17 lines
  • verify_start auth-required never probed

    Email a one-time verification code to an address (sign-up, sign-in, confirming an email). email59 makes the code, sends it, limits resends and expires it; the code is never returned to you. Returns an id. Uses 1 email of today's allowance. A new code to the same address replaces the one waiting there. Then call verify_check with what the person typed.

    mcp-tool

    {
      "type": "object",
      "required": [
        "to"
      ],
      "properties": {
        "to": {
          "type": "string",
          "description": "The address to verify."
        },
        "from": {
          "type": "string",
          "description": "Name before the @; the domain is always email59.com. Default verify."
        },
        "app_name": {
          "type": "string",
          "description": "Your app's name, shown in the subject and body. Optional."
        },
        "expires_in": {
          "type": "integer",
          "description": "Seconds the code works, 60 to 3600. Default 600."
        },
        "code_length": {
          "type": "integer",
          "description": "Digits in the code, 4 to 10. Default 6."
        }
      }
    }
    arguments 28 lines
  • verify_check auth-required never probed

    Check a code from verify_start. Give to (checks the newest code sent there) or id, and code. Returns valid true or false and a status: approved, wrong_code, expired, too_many_attempts (5 wrong codes lock it), already_used, replaced or not_found. A right code works once. Uses no allowance.

    mcp-tool

    {
      "type": "object",
      "required": [
        "code"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Or the id from verify_start."
        },
        "to": {
          "type": "string",
          "description": "The address the code was sent to."
        },
        "code": {
          "type": "string",
          "description": "The code the person typed."
        }
      }
    }
    arguments 20 lines
  • validate_email auth-required never probed

    Check an address before sending. Verdicts: ok, invalid, no_mx, disposable, role.

    mcp-tool

    {
      "type": "object",
      "required": [
        "email"
      ],
      "properties": {
        "email": {
          "type": "string",
          "description": "Email address."
        }
      }
    }
    arguments 12 lines
  • list_api_keys auth-required never probed

    The account's API keys (ids and labels, never the keys themselves).

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
  • update_account auth-required never probed

    Set the name, company or brand (the look of every email the account sends) on the account.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "brand": {
          "type": "object",
          "properties": {
            "url": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "color": {
              "type": "string"
            },
            "address": {
              "type": "string"
            },
            "logo_url": {
              "type": "string"
            }
          },
          "description": "name (header band), color (#rrggbb), logo_url and url (https), address (footer line). An empty name clears it."
        },
        "company": {
          "type": "string"
        }
      }
    }
    arguments 32 lines
  • order_status auth-required never probed

    Status of an order from buy_pack: pending or paid.

    mcp-tool

    {
      "type": "object",
      "required": [
        "order_id"
      ],
      "properties": {
        "order_id": {
          "type": "integer"
        }
      }
    }
    arguments 11 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 02c4265f278a6bac.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/02c4265f278a6bac/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/02c4265f278a6bac/badge.svg)](https://brick.blue/agent/02c4265f278a6bac?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.