Skip to content
Have I Been Pwned logo

Have I Been Pwned MCP server

Which MCP servers are Have I Been Pwned'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-10-30

← Back to Have I Been Pwned

Whose server it is
  • Addresshttps://haveibeenpwned.com/mcpnot in the official registry: answered when asked

No entry in the official MCP registry names this server. It answered on haveibeenpwned.com when the Atlas asked at the address servers are usually mounted on, so it is the vendor's own. Clients and catalogues that list servers from the registry do not show it.

When we asked itchecked 2026-10-30
  • Stateanswerschecked 2026-10-30
  • Tools17
  • Server calls itselfhibp-mcp-server
  • Server version0.0.0
  • Protocol version2025-06-18

On 2026-10-30 the server answered initialize and tools/list without a sign-in. First answer in 57 ms.

Should an agent connect itNot proven either way yet
  • Its tools do every use case we checked: check whether an email address appeared in data breaches; monitor your own domains for breached addresses; check whether passwords appear in known breach dumps.
  • Checked on 6 of the 7 days it takes to judge reliability.

Once connected

  • For "check whether an email address appeared in data breaches", the likely first call is hibp_get_breached_account.
  • For "check whether passwords appear in known breach dumps", the likely first call is hibp_get_pwned_passwords_range.
  • Keep approval on for hibp_send_domain_verification_email: they delete, send or pay without saying so.
  • hibp_send_domain_verification_email change data without a sign-in: anyone with the address can call them.

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: 6, the first on 2026-10-30
  • INITE MCP scoreafter a weeka score needs 7 daily checks: 6 so far
  • What an agent can do with it3 of 3 use cases
  • Answeredmeasuring6 of the 7 daily checks it takes to print a share
  • Median first answer53 ms
  • Space in an agent's context≈ 3,823 tokensthe definitions of all its tools (17), which an agent carries on every turn
  • Tool definitionsA · 100 of 100
  • Typed results17 of 17 toolsdeclared outputSchema: results come typed, read once
  • Every tool passes all six checks.

What an agent can do with it

  • can do · check whether an email address appeared in data breaches
  • can do · monitor your own domains for breached addresses
  • can do · check whether passwords appear in known breach dumps

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 delete, send or pay, marked as not destructive: hibp_send_domain_verification_email
  • Tools that change data, on a server that answers without a sign-in: hibp_send_domain_verification_email

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 offers17 tools · read 2026-10-30
  • hibp_list_breaches

    List public HIBP breaches, optionally filtered by domain, spam-list flag, and verification status.

  • hibp_get_breach

    Look up a single public HIBP breach by its canonical breach name, such as Adobe.

  • hibp_get_latest_breach

    Return the most recently added public breach currently loaded into HIBP.

  • hibp_list_data_classes

    List the data classes used across public HIBP breach models, such as email addresses or passwords.

  • hibp_get_pwned_passwords_range

    Query the public Pwned Passwords k-anonymity API with a 5-character SHA-1 or NTLM prefix and return matching suffixes with prevalence counts.

  • hibp_get_breached_account

    Search HIBP for breaches affecting a single email address. Requires an OAuth bearer token linked to an active HIBP API subscription; use domain and verification filters to refine the result.

  • hibp_get_breached_account_range

    Query the authenticated HIBP k-anonymity breached-account range endpoint with the first 6 characters of a SHA-1 email hash. Requires a subscription with k-anonymity access; compare each returned suffix with the remaining hash characters…

  • hibp_get_paste_account

    Search for public pastes containing a single email address. Requires an OAuth bearer token linked to an active HIBP API subscription; run this separately from breached-account lookup.

  • hibp_get_breached_domain

    Return breached aliases for a verified domain. This tool requires an authorized subscription via OAuth bearer token.

  • hibp_list_subscribed_domains

    List the domains associated with the authenticated HIBP subscription.

  • hibp_get_subscription_status

    Return the current plan, quotas, rate limits, expiry, and feature flags for the active HIBP API subscription linked to the authenticated OAuth connection. Use it to confirm access before feature-dependent lookups.

  • hibp_get_stealer_logs_by_email

    Return website domains historically observed in stealer logs for an email address. Requires an OAuth-linked active subscription with the stealer-log feature; results do not establish current account access.

  • hibp_get_stealer_logs_by_website_domain

    Return email addresses historically observed in stealer logs for a website domain. Requires an OAuth-linked active subscription with the stealer-log feature; results do not establish current account access.

  • hibp_get_stealer_logs_by_email_domain

    Return email aliases and associated website domains historically observed in stealer logs for an email domain. Requires an OAuth-linked active subscription with the stealer-log feature; results do not establish current account access.

  • hibp_generate_domain_verification_dns_token

    Generate the TXT record value required to verify domain control via DNS, creating or reusing the private HIBP domain-verification records needed for the request. Requires an authenticated subscription with domain-verification access.

  • hibp_verify_domain_verification_dns_token

    Complete domain verification by checking the expected HIBP TXT record on the target domain. Requires an authenticated subscription with domain-verification access.

  • hibp_send_domain_verification_email

    Send a domain verification email to an approved alias such as admin or security. Requires an authenticated subscription with domain-verification access.

How to connect

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

{
  "mcpServers": {
    "haveibeenpwned": {
      "type": "http",
      "url": "https://haveibeenpwned.com/mcp"
    }
  }
}

Add it

Claude Code, in a terminal

claude mcp add --transport http haveibeenpwned https://haveibeenpwned.com/mcp

Add to CursorAdd to VS Code

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

OpenAPI spec

18 paths, read 2026-10-30. 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.