{"name":"io.github.troyhunt/hibp","slug":"troyhunt-hibp","title":"Have I Been Pwned","description":"Breach intelligence API: email search, domain monitoring, passwords and stealer logs.","url":"https://mcp.market/server/troyhunt-hibp","rating":null,"grade":"C","score":57,"certified":false,"status":"active","category":"email","tags":["email","search"],"presence":{"score":5,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-09-27T12:31:22.219Z","last_ok_at":"2026-09-27T12:31:22.219Z","latency_ms":303},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":null,"version":"1.0.0","remotes":[{"type":"streamable-http","url":"https://haveibeenpwned.com/mcp"}],"packages":[],"tools":[{"name":"hibp_generate_domain_verification_dns_token","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"The domain to generate a verification token for."},"response_format":{"default":"markdown","description":"Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent.","type":"string","enum":["markdown","json"]}},"required":["domain"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"hibp_get_breach","description":"Look up a single public HIBP breach by its canonical breach name, such as Adobe.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"name":{"type":"string","description":"The breach name to retrieve, for example Adobe."},"response_format":{"default":"markdown","description":"Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent.","type":"string","enum":["markdown","json"]}},"required":["name"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"hibp_get_breached_account","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"account":{"type":"string","description":"The email address to search for."},"domain":{"description":"Filter results to a specific breach domain.","type":"string"},"includeUnverified":{"default":true,"description":"Include unverified breaches. Defaults to true.","type":"boolean"},"responseMode":{"default":"full","description":"Choose full breach objects, truncated objects, or breach names.","type":"string","enum":["full","truncated","names"]},"limit":{"default":25,"description":"Maximum number of items to include in the response. Defaults to 25.","type":"integer","minimum":1,"maximum":100},"offset":{"default":0,"description":"Number of items to skip before returning results. Defaults to 0.","type":"integer","minimum":0,"maximum":9007199254740991},"response_format":{"default":"markdown","description":"Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent.","type":"string","enum":["markdown","json"]}},"required":["account"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"hibp_get_breached_account_range","description":"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 locally because a prefix alone cannot identify an account.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"prefix":{"type":"string","pattern":"^[0-9A-Fa-f]{6}$","description":"The first 6 hexadecimal characters of the SHA-1 hash of an email address. Compare each returned suffix with the remaining 34 characters locally; a prefix alone does not identify an account."},"limit":{"default":25,"description":"Maximum number of items to include in the response. Defaults to 25.","type":"integer","minimum":1,"maximum":100},"offset":{"default":0,"description":"Number of items to skip before returning results. Defaults to 0.","type":"integer","minimum":0,"maximum":9007199254740991},"response_format":{"default":"markdown","description":"Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent.","type":"string","enum":["markdown","json"]}},"required":["prefix"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"hibp_get_breached_domain","description":"Return breached aliases for a verified domain. This tool requires an authorized subscription via OAuth bearer token.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"The verified domain to search."},"limit":{"default":25,"description":"Maximum number of items to include in the response. Defaults to 25.","type":"integer","minimum":1,"maximum":100},"offset":{"default":0,"description":"Number of items to skip before returning results. Defaults to 0.","type":"integer","minimum":0,"maximum":9007199254740991},"response_format":{"default":"markdown","description":"Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent.","type":"string","enum":["markdown","json"]}},"required":["domain"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"hibp_get_latest_breach","description":"Return the most recently added public breach currently loaded into HIBP.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"response_format":{"default":"markdown","description":"Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent.","type":"string","enum":["markdown","json"]}},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"hibp_get_paste_account","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"account":{"type":"string","description":"The email address to search for pastes."},"limit":{"default":25,"description":"Maximum number of items to include in the response. Defaults to 25.","type":"integer","minimum":1,"maximum":100},"offset":{"default":0,"description":"Number of items to skip before returning results. Defaults to 0.","type":"integer","minimum":0,"maximum":9007199254740991},"response_format":{"default":"markdown","description":"Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent.","type":"string","enum":["markdown","json"]}},"required":["account"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"hibp_get_pwned_passwords_range","description":"Query the public Pwned Passwords k-anonymity API with a 5-character SHA-1 or NTLM prefix and return matching suffixes with prevalence counts.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"prefix":{"type":"string","pattern":"^[0-9A-Fa-f]{5}$","description":"The first 5 hexadecimal characters of a SHA-1 or NTLM hash."},"mode":{"default":"sha1","description":"Use SHA-1 by default or NTLM when mode is set to ntlm.","type":"string","enum":["sha1","ntlm"]},"addPadding":{"default":false,"description":"Send the Add-Padding header and discard padded zero-count entries.","type":"boolean"},"limit":{"default":25,"description":"Maximum number of items to include in the response. Defaults to 25.","type":"integer","minimum":1,"maximum":100},"offset":{"default":0,"description":"Number of items to skip before returning results. Defaults to 0.","type":"integer","minimum":0,"maximum":9007199254740991},"response_format":{"default":"markdown","description":"Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent.","type":"string","enum":["markdown","json"]}},"required":["prefix"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"hibp_get_stealer_logs_by_email","description":"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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"email":{"type":"string","description":"The email address to search for in stealer logs."},"limit":{"default":25,"description":"Maximum number of items to include in the response. Defaults to 25.","type":"integer","minimum":1,"maximum":100},"offset":{"default":0,"description":"Number of items to skip before returning results. Defaults to 0.","type":"integer","minimum":0,"maximum":9007199254740991},"response_format":{"default":"markdown","description":"Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent.","type":"string","enum":["markdown","json"]}},"required":["email"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"hibp_get_stealer_logs_by_email_domain","description":"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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"The email domain to search for in stealer logs."},"limit":{"default":25,"description":"Maximum number of items to include in the response. Defaults to 25.","type":"integer","minimum":1,"maximum":100},"offset":{"default":0,"description":"Number of items to skip before returning results. Defaults to 0.","type":"integer","minimum":0,"maximum":9007199254740991},"response_format":{"default":"markdown","description":"Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent.","type":"string","enum":["markdown","json"]}},"required":["domain"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"hibp_get_stealer_logs_by_website_domain","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"The website domain to search for in stealer logs."},"limit":{"default":25,"description":"Maximum number of items to include in the response. Defaults to 25.","type":"integer","minimum":1,"maximum":100},"offset":{"default":0,"description":"Number of items to skip before returning results. Defaults to 0.","type":"integer","minimum":0,"maximum":9007199254740991},"response_format":{"default":"markdown","description":"Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent.","type":"string","enum":["markdown","json"]}},"required":["domain"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"hibp_get_subscription_status","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"response_format":{"default":"markdown","description":"Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent.","type":"string","enum":["markdown","json"]}},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"hibp_list_breaches","description":"List public HIBP breaches, optionally filtered by domain, spam-list flag, and verification status.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"description":"Filter to breaches for a specific domain.","type":"string"},"isSpamList":{"description":"Filter to breaches that are or are not flagged as spam lists.","type":"boolean"},"includeUnverified":{"default":true,"description":"Include unverified breaches. Defaults to true.","type":"boolean"},"limit":{"default":25,"description":"Maximum number of items to include in the response. Defaults to 25.","type":"integer","minimum":1,"maximum":100},"offset":{"default":0,"description":"Number of items to skip before returning results. Defaults to 0.","type":"integer","minimum":0,"maximum":9007199254740991},"response_format":{"default":"markdown","description":"Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent.","type":"string","enum":["markdown","json"]}},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"hibp_list_data_classes","description":"List the data classes used across public HIBP breach models, such as email addresses or passwords.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"response_format":{"default":"markdown","description":"Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent.","type":"string","enum":["markdown","json"]}},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"hibp_list_subscribed_domains","description":"List the domains associated with the authenticated HIBP subscription.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"limit":{"default":25,"description":"Maximum number of items to include in the response. Defaults to 25.","type":"integer","minimum":1,"maximum":100},"offset":{"default":0,"description":"Number of items to skip before returning results. Defaults to 0.","type":"integer","minimum":0,"maximum":9007199254740991},"response_format":{"default":"markdown","description":"Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent.","type":"string","enum":["markdown","json"]}},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"hibp_send_domain_verification_email","description":"Send a domain verification email to an approved alias such as admin or security. Requires an authenticated subscription with domain-verification access.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"The domain to verify by email."},"emailAlias":{"type":"string","description":"The approval alias to send the verification email to, for example admin."},"response_format":{"default":"markdown","description":"Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent.","type":"string","enum":["markdown","json"]}},"required":["domain","emailAlias"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"hibp_verify_domain_verification_dns_token","description":"Complete domain verification by checking the expected HIBP TXT record on the target domain. Requires an authenticated subscription with domain-verification access.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"The domain to verify by DNS."},"response_format":{"default":"markdown","description":"Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent.","type":"string","enum":["markdown","json"]}},"required":["domain"],"$schema":"https://json-schema.org/draft/2020-12/schema"}}],"scan":{"score":57,"grade":"C","scanned_at":"2026-09-25T12:09:46.162Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-25T12:09:46.014Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 429ms"]},"poisoning":{"score":15,"max":15,"notes":["17 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 3 write-action tools with no auth"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":2,"max":10,"notes":["no repository or website to verify"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"},{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://haveibeenpwned.com/mcp","reachable":true,"authRequired":false,"latencyMs":429,"serverInfo":{"name":"hibp-mcp-server","version":"0.0.0"}}],"packages":[],"repo":{"found":false},"icon":{"url":"https://haveibeenpwned.com/favicon-96x96.png","source":"registry","width":96,"height":96},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":5}}}},"grade_history":[],"reviews":[]}