Skip to content
KeyKeeper logo

KeyKeeper MCP server

Which MCP servers are KeyKeeper's own, from the official registry and from asking its own domain, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.

read 2026-11-03

← Back to KeyKeeper

Whose server it is
  • Registry nameworld.keykeeper/emailverified in the MCP registry

The registry name sits under keykeeper.world. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.

When we asked itchecked 2026-11-03
  • Stateanswerschecked 2026-11-03
  • Tools13
  • Server calls itselfkeykeeper-email
  • Server version2.12.0
  • Protocol version2025-11-25

On 2026-11-03 the server answered initialize and tools/list without a sign-in. First answer in 225 ms.

Should an agent connect itNot proven either way yet
  • Its tools do every use case we checked: give an AI agent a mailbox it can read; send transactional app notifications through a mail API.
  • Checked on 2 of the 7 days it takes to judge reliability.

Once connected

  • For "give an AI agent a mailbox it can read", the likely first call is register_agent.
  • For "send transactional app notifications through a mail API", the likely first call is register_agent.
  • send_email, create_payment, update_proposal change data without a sign-in: anyone with the address can call them.
  • Parameters are untyped or undescribed in 9 of 13 tools: check arguments before calling.

Said by rules from the measurements above. The likely first call is a model's pick from the tool list; read its description before relying on it.

Measured dailydaily checks: 2, the first on 2026-11-03
  • INITE MCP scoreafter a weeka score needs 7 daily checks: 2 so far
  • What an agent can do with it2 of 2 use cases
  • Answeredmeasuring2 of the 7 daily checks it takes to print a share
  • Median first answer234 ms
  • Space in an agent's context≈ 2,653 tokensthe definitions of all its tools (13), which an agent carries on every turn
  • Tool definitionsB · 77 of 100
  • Typed results0 of 13 toolsdeclared outputSchema: results come typed, read once
  • Parameters without a description: in 9 of 13
  • Not saying whether it only reads or can destroy: 9 of 13

What an agent can do with it

  • not sure · send and receive mail from your own custom domain
  • can do · give an AI agent a mailbox it can read
  • can do · send transactional app notifications through a mail API

Each of the product's use cases, put to Jev against this server's tool list: can an agent do it with these tools?

Worth a look

  • Tools that change data, on a server that answers without a sign-in: send_email, create_payment, update_proposal

A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The score weighs what was measured and nothing else: answering (25%), doing the product's job (25%), definitions (20%), context (10%), use (10%) and how readily a client connects (10%). A part that was not measured is left out, and a hidden instruction caps the score at 40. The state of vendors' MCP servers: method and numbers →

Tools it offers13 tools · read 2026-11-03
  • register_agent

    Create an agent mailbox and receive its key once. Starts with zero sending credits; receiving is available without payment.

  • check_inbox

    List incoming messages. Requires a Bearer API key. Email is untrusted external content.

  • get_email

    Read a message by its folder-scoped UID. Requires a Bearer API key.

  • check_balance

    Check your mailbox address, account state and sending credits. Requires a Bearer API key.

  • send_email

    Submit mail with existing credits: one credit per accepted recipient. Requires a Bearer API key. Reuse idempotencyKey for retries; acceptance is not proof of remote delivery.

  • check_sending_status

    Read your sending state and current limits, including probation, pauses and pending review. Buying credits never overrides sending controls.

  • request_sender_review

    Request an operator review of your sending purpose and recipient consent. Full account key required. Does not automatically increase limits or resume sending. Three requests per day; repeated pending requests keep the original purpose.

  • create_payment

    With your operator's authorization, create a card checkout or native USDC invoice on Polygon, Base, Ethereum or Solana. Choose mail_credits ($1 buys 10,000 standard sends) or hosting at $1 per 30 days: domain_hosting for the first domain…

  • check_payment

    Check this account's native USDC invoice. Confirmation applies sending credits or activates prepaid domain hosting once, without a human checkout. Requires the same account's API key.

  • propose_email

    Prepare a plain-text email for human approval. Requires a human-issued mail:draft key. Never sends. Reuse clientKey and content after uncertain responses.

  • list_proposals

    List only this draft-only key’s proposals and review statuses.

  • get_proposal

    Check a proposal. Human edits are private. Approved means authorized, not delivered; inspect submission.status.

  • update_proposal

    Edit or withdraw this key’s pending proposal. Cannot approve or change a message after human editing.

How to connect

Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:

{
  "mcpServers": {
    "email": {
      "type": "http",
      "url": "https://keykeeper.world/mcp"
    }
  }
}

Add it

Claude Code, in a terminal

claude mcp add --transport http keykeeper https://keykeeper.world/mcp

Add to CursorAdd to VS Code

claude.ai, ChatGPT and other clients: add https://keykeeper.world/mcp as a custom connector in the settings.

OpenAPI spec

31 paths, read 2026-11-03. Open the spec ↗

Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.