MCP Server

Connect AI agents to Have I Been Pwned

What you can do with it

The Have I Been Pwned MCP server lets MCP-capable AI agents safely query HIBP breach intelligence. Use it to check whether email addresses appear in known breaches, investigate exposure across verified domains, research breach details, review exposed data classes, check paste and stealer log exposure, and query Pwned Passwords using k-anonymity.

Public breach metadata, data classes and Pwned Passwords range searches are available without signing in. Account, domain, subscription, verification, paste and stealer log tools require HIBP authorisation, and subscriber-only features follow the normal HIBP plan and domain verification rules.

The MCP endpoint is https://haveibeenpwned.com/mcp. Supporting discovery documents are also published so compatible clients can find the server, its OAuth requirements and its agent guidance automatically.

Setting it up

  1. Open an MCP-capable client or agent platform.
  2. Add the HIBP MCP server URL: https://haveibeenpwned.com/mcp
  3. Allow the client to follow the advertised discovery documents and OAuth metadata.
  4. When prompted, sign in to HIBP and approve access for the client.
  5. Use public tools immediately, or subscriber-only tools when your HIBP account has the required subscription.

Clients that need to perform discovery manually can start with the MCP server card, the OAuth protected resource metadata, the OAuth authorisation server metadata and the agent authentication guide.

Authorisation

The server uses OAuth for agent access. Public breach, data class and Pwned Passwords range tools can be used without signing in, but tools that search addresses, domains, subscriptions, domain verification workflows and stealer logs require a bearer token for the hibp.mcp scope.

Access to subscriber-only HIBP data still follows the normal HIBP product rules. If a tool requires a paid plan, the signed-in HIBP account must have a subscription that includes that capability. See the pricing page and API documentation for more detail about plan-specific features.

Use cases and examples

Here are some practical ways to use the HIBP MCP server from an MCP-capable client. These examples are a good starting point for connectors, app stores and agent prompts. Successfully running these prompts may require an appropriately sized subscription and when querying domains, prior verification of control of the domain.

Check email address exposure

  • Has test@example.com appeared in any known data breaches?
  • Show me all breaches associated with jane.doe@example.com.
  • What types of data were exposed in breaches involving this email address?

Investigate domain exposure

  • Show me all breached addresses on example.com.
  • Which breaches have affected users from my verified domain?
  • Summarise the most significant breaches impacting addresses on this domain.

Research breaches

  • Tell me about the LinkedIn breach.
  • What data was exposed in the Dropbox breach?
  • Show me the most recently added breach and summarise the impact.

Investigate stealer log exposure

  • Show website domains historically observed in stealer logs for test@example.com.
  • Show email addresses historically observed in stealer logs for example.com as a website domain.
  • List aliases and associated website domains historically observed for the example.com email domain.

Explore password and exposure intelligence

  • Query the SHA-1 Pwned Passwords range for prefix 21BD1 and return the first 10 suffixes with counts.
  • Query the NTLM Pwned Passwords range for prefix ABCDE.
  • Use response padding when querying the SHA-1 range for prefix 21BD1.

Verify control of a domain

  • Generate the HIBP DNS verification TXT value for my subscribed example.com domain.
  • Check the public DNS record and mark my example.com domain as verified in HIBP.
  • Send a HIBP domain verification email to the security alias at example.com.

Domain verification tools change private HIBP verification state. The email workflow also sends an external message that cannot be recalled, so clients should obtain user confirmation before invoking it.

Debugging common issues

The client cannot find the server

Check that the configured URL is exactly https://haveibeenpwned.com/mcp. If your client supports discovery, confirm it can read the server card and OAuth metadata linked above.

The client reports no tools

Remove any failed HIBP connection from the client, then reconnect to https://haveibeenpwned.com/mcp. Public breach, data class and Pwned Passwords range tools are available before OAuth is required for protected tools.

Authorisation does not complete

Start the connection flow again from the MCP client and complete the browser sign-in and consent steps in the same session. If a client caches failed registration or consent state, remove the HIBP connection in that client before retrying.

The MCP call returns 401

The access token is missing, expired or no longer valid for the HIBP MCP resource. Remove the saved credential from the client and reconnect so it obtains a fresh token.

A protected tool is unavailable or forbidden

Confirm the signed-in HIBP account has an active subscription and that the subscription includes the feature being called. Domain tools also require the domain to be verified in HIBP before domain data can be searched.

Requests are rate limited

Slow the client down and retry after the reported reset time. MCP tools still respect the same service limits that protect the HIBP API and subscriber features.

Tool justifications

Some MCP clients and app stores ask for additional justification about how individual tools behave. The following notes describe why specific HIBP MCP tools are flagged as read only, open world or destructive. For HIBP lookups, a changing dataset does not by itself make a tool open world; that hint is reserved for tools that change public internet state or an external system.

hibp_list_breaches
Read only true This tool only retrieves publicly available breach metadata from Have I Been Pwned. It does not create, modify or delete any data and performs no actions on behalf of the user.
Open world false This tool only queries the defined Have I Been Pwned service and returns data from its closed corpus. It does not publish content or interact with arbitrary external entities.
Destructive false This tool has no side effects. It only reads breach information and cannot modify user accounts, system settings or any data within Have I Been Pwned.
hibp_get_breach
Read only true This tool retrieves details for a single named breach from Have I Been Pwned. It only returns existing breach metadata and does not alter any records or user data.
Open world false This tool only queries the defined Have I Been Pwned service and returns data from its closed corpus. It does not publish content or interact with arbitrary external entities.
Destructive false This tool performs a lookup only. It cannot create, update, delete or otherwise modify any data in Have I Been Pwned or any user system.
hibp_get_latest_breach
Read only true This tool retrieves the most recently added breach from Have I Been Pwned. It only reads published breach metadata and does not perform any write operations.
Open world false This tool only queries the defined Have I Been Pwned service and returns data from its closed corpus. It does not publish content or interact with arbitrary external entities.
Destructive false This tool has no side effects. It only returns information about the latest breach and cannot modify accounts, settings or stored data.
hibp_list_data_classes
Read only true This tool retrieves the list of data classes used by Have I Been Pwned to describe exposed information in breaches. It does not create, change or remove any data.
Open world false This tool only queries the defined Have I Been Pwned service and returns data from its closed corpus. It does not publish content or interact with arbitrary external entities.
Destructive false This tool is informational only. It cannot modify the data class taxonomy, breach records, user accounts or any other system data.
hibp_get_pwned_passwords_range
Read only true This tool retrieves anonymised Pwned Passwords range data using the k-anonymity model. It only returns existing password hash suffixes and occurrence counts and does not store or modify user information.
Open world false This tool only queries the defined Have I Been Pwned service and returns data from its closed corpus. It does not publish content or interact with arbitrary external entities.
Destructive false This tool is a passive lookup service. It cannot change passwords, modify accounts or perform any action beyond returning matching hash range data.
hibp_get_breached_account
Read only true This tool retrieves breach information associated with a specified email address from Have I Been Pwned. It only reads existing breach records and does not create, modify or remove any data.
Open world false This tool only queries the defined Have I Been Pwned service and returns data from its closed corpus. It does not publish content or interact with arbitrary external entities.
Destructive false This tool only reports breach exposure information. It cannot alter breach records, user accounts, subscriptions or any external systems.
hibp_get_breached_account_range
Read only true This tool retrieves hash suffixes and non-sensitive breach names matching the first six characters of a SHA-1 email hash. The caller compares suffixes locally, and the tool performs no write operations.
Open world false This tool only queries the defined Have I Been Pwned service and returns data from its closed corpus. It does not publish content or interact with arbitrary external entities.
Destructive false This tool performs a k-anonymity range lookup only. It cannot modify account data, change breach records or trigger actions affecting users or systems.
hibp_get_paste_account
Read only true This tool retrieves paste records associated with a specified email address from Have I Been Pwned. It only returns existing paste metadata and does not create, modify or delete any information.
Open world false This tool only queries the defined Have I Been Pwned service and returns data from its closed corpus. It does not publish content or interact with arbitrary external entities.
Destructive false This tool performs informational lookups only. It cannot alter paste content, user accounts or any data held by Have I Been Pwned.
hibp_get_breached_domain
Read only true This tool retrieves breach information for addresses belonging to a verified domain. It provides read-only access to existing breach data and does not perform any write operations.
Open world false This tool only queries the defined Have I Been Pwned service and returns data from its closed corpus. It does not publish content or interact with arbitrary external entities.
Destructive false This tool only returns breach exposure information for authorised domain searches. It cannot modify domain subscriptions, breach records or user data.
hibp_list_subscribed_domains
Read only true This tool retrieves the domains currently associated with the authenticated user's Have I Been Pwned account. It only reads subscription information and does not change account settings.
Open world false This tool only queries the defined Have I Been Pwned service and returns data from its closed corpus. It does not publish content or interact with arbitrary external entities.
Destructive false This tool is used solely to view subscription information. It cannot add domains, remove domains or modify account configuration in any way.
hibp_get_subscription_status
Read only true This tool retrieves the current subscription status associated with the authenticated Have I Been Pwned account. It only reads account metadata and does not modify subscriptions or billing information.
Open world false This tool only queries the defined Have I Been Pwned service and returns data from its closed corpus. It does not publish content or interact with arbitrary external entities.
Destructive false This tool is informational only. It cannot change subscription status, modify billing details or perform any account management actions.
hibp_get_stealer_logs_by_email
Read only true This tool retrieves website domains historically observed in stealer logs for a specified email address. It only reads existing records and does not establish current account access.
Open world false This tool only queries the defined Have I Been Pwned service and returns data from its closed corpus. It does not publish content or interact with arbitrary external entities.
Destructive false This tool only returns historical email-to-domain relationships. It cannot modify accounts, alter source data or take any action on behalf of the user.
hibp_get_stealer_logs_by_website_domain
Read only true This tool retrieves email addresses historically observed in stealer logs for a specified website domain. It only reads existing records and does not establish current account access.
Open world false This tool only queries the defined Have I Been Pwned service and returns data from its closed corpus. It does not publish content or interact with arbitrary external entities.
Destructive false This tool only returns historical domain-to-email relationships. It cannot modify website data, stealer log records or any external system.
hibp_get_stealer_logs_by_email_domain
Read only true This tool retrieves aliases and associated website domains historically observed in stealer logs for a specified email domain. It only reads existing records and does not establish current account access.
Open world false This tool only queries the defined Have I Been Pwned service and returns data from its closed corpus. It does not publish content or interact with arbitrary external entities.
Destructive false This tool only returns historical alias-to-domain relationships. It cannot modify accounts, update records or perform actions against any external service.
hibp_generate_domain_verification_dns_token
Read only false This tool creates or reuses the private HIBP records needed for a domain verification request before returning its DNS TXT value. Because it changes account-related state, it is not a read-only action.
Open world false This tool creates a verification challenge entirely within the authenticated user's Have I Been Pwned account. It does not contact DNS, send communications or interact with arbitrary external entities.
Destructive false This tool prepares a verification request but does not verify domain ownership, delete data or make irreversible changes. The returned TXT value can only be used as part of a subsequent verification process.
hibp_verify_domain_verification_dns_token
Read only false This tool validates a previously generated domain verification token against live DNS records and may update the verification status of a domain. Because it can change account state, it is not a read-only operation.
Open world false This tool reads public DNS but does not alter it or any other external system. A successful check only updates private domain verification state within Have I Been Pwned.
Destructive false This tool can change a domain's verification status within the authenticated user's account but does not delete data, revoke access or perform irreversible actions. Verification can be managed through normal account administration processes.
hibp_send_domain_verification_email
Read only false This tool sends a domain verification email to an authorised recipient as part of the domain ownership verification process. Because it initiates an outbound communication, it is not a read-only operation.
Open world true This tool sends a verification email through external email infrastructure to an authorised address on the specified domain.
Destructive true This tool sends an external email that cannot be recalled after delivery. Any resulting domain verification still requires action by the recipient.