Have I Been Pwned is an MCP server with 17 tools an agent can call, among them hibp_generate_domain_verification_dns_token, hibp_get_breach, hibp_get_breached_account. It answers at https://haveibeenpwned.com/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 6 of 6 times since 11 September 2026; the last check, on 24 October 2026, succeeded.
Breach intelligence API: email search, domain monitoring, passwords and stealer logs.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
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. Inputs: domain, response_format |
hibp_get_breach | Look up a single public HIBP breach by its canonical breach name, such as Adobe. Inputs: name, response_format |
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. Inputs: account, domain, includeUnverified, responseMode, limit, offset |
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 loc Inputs: prefix, limit, offset, response_format |
hibp_get_breached_domain | Return breached aliases for a verified domain. This tool requires an authorized subscription via OAuth bearer token. Inputs: domain, limit, offset, response_format |
hibp_get_latest_breach | Return the most recently added public breach currently loaded into HIBP. Inputs: response_format |
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. Inputs: account, limit, offset, response_format |
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. Inputs: prefix, mode, addPadding, limit, offset, response_format |
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. Inputs: email, limit, offset, response_format |
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. Inputs: domain, limit, offset, response_format |
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. Inputs: domain, limit, offset, response_format |
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. Inputs: response_format |
hibp_list_breaches | List public HIBP breaches, optionally filtered by domain, spam-list flag, and verification status. Inputs: domain, isSpamList, includeUnverified, limit, offset, response_format |
hibp_list_data_classes | List the data classes used across public HIBP breach models, such as email addresses or passwords. Inputs: response_format |
hibp_list_subscribed_domains | List the domains associated with the authenticated HIBP subscription. Inputs: limit, offset, response_format |
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. Inputs: domain, emailAlias, response_format |
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. Inputs: domain, response_format |
Every block below points at https://haveibeenpwned.com/mcp. Pick your client and copy.
claude mcp add --transport http have-i-been-pwned https://haveibeenpwned.com/mcp
{
"mcpServers": {
"have-i-been-pwned": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://haveibeenpwned.com/mcp"]
}
}
}{
"mcpServers": {
"have-i-been-pwned": {
"url": "https://haveibeenpwned.com/mcp"
}
}
}{
"servers": {
"have-i-been-pwned": {
"type": "http",
"url": "https://haveibeenpwned.com/mcp"
}
}
}{
"context_servers": {
"have-i-been-pwned": {
"url": "https://haveibeenpwned.com/mcp"
}
}
}{
"mcpServers": {
"have-i-been-pwned": {
"serverUrl": "https://haveibeenpwned.com/mcp"
}
}
}{
"mcpServers": {
"have-i-been-pwned": {
"url": "https://haveibeenpwned.com/mcp"
}
}
}name: Have I Been Pwned
version: 0.0.1
schema: v1
mcpServers:
- name: Have I Been Pwned
type: streamable-http
url: https://haveibeenpwned.com/mcp{
"mcpServers": {
"have-i-been-pwned": {
"httpUrl": "https://haveibeenpwned.com/mcp"
}
}
}{
"mcpServers": {
"have-i-been-pwned": {
"type": "http",
"url": "https://haveibeenpwned.com/mcp"
}
}
}{
"mcpServers": {
"have-i-been-pwned": {
"url": "https://haveibeenpwned.com/mcp"
}
}
}goose://extension?url=https%3A%2F%2Fhaveibeenpwned.com%2Fmcp&type=streamable_http&id=have-i-been-pwned&name=Have%20I%20Been%20Pwned
It answered our last check on 24 October 2026 in 226 ms. Over 6 checks since 11 September 2026 it answered 6. Status here comes from Neuronto's own probes, not from the publisher.
17, as returned by the server's own tools/list on 22 September 2026: hibp_generate_domain_verification_dns_token, hibp_get_breach, hibp_get_breached_account, hibp_get_breached_account_range, hibp_get_breached_domain, hibp_get_latest_breach, hibp_get_paste_account, hibp_get_pwned_passwords_range, and 9 more.
It answered our last check on 24 October 2026 in 226 ms. Over 6 checks since 11 September 2026 it answered 6.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://haveibeenpwned.com/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: io.github.troyhunt. Endpoint host: haveibeenpwned.com. ARD identifier: urn:air:io.github.troyhunt:mcp:hibp.
First indexed 10 September 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.