Breach intelligence API: email search, domain monitoring, passwords and stealer logs.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
The domain to generate a verification token for.
Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
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.
| Argument | Type | Description |
|---|---|---|
| domain* | string | The domain to generate a verification token for. |
| response_format | string | Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"description": "The domain to generate a verification token for."
},
"response_format": {
"enum": [
"markdown",
"json"
],
"type": "string",
"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."
}
}
}Look up a single public HIBP breach by its canonical breach name, such as Adobe.
| Argument | Type | Description |
|---|---|---|
| name* | string | The breach name to retrieve, for example Adobe. |
| response_format | string | Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "The breach name to retrieve, for example Adobe."
},
"response_format": {
"enum": [
"markdown",
"json"
],
"type": "string",
"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."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum number of items to include in the response. Defaults to 25. |
| domain | string | Filter results to a specific breach domain. |
| offset | integer | Number of items to skip before returning results. Defaults to 0. |
| account* | string | The email address to search for. |
| responseMode | string | Choose full breach objects, truncated objects, or breach names. |
| response_format | string | Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent. |
| includeUnverified | boolean | Include unverified breaches. Defaults to true. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"account"
],
"properties": {
"limit": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1,
"description": "Maximum number of items to include in the response. Defaults to 25."
},
"domain": {
"type": "string",
"description": "Filter results to a specific breach domain."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "Number of items to skip before returning results. Defaults to 0."
},
"account": {
"type": "string",
"description": "The email address to search for."
},
"responseMode": {
"enum": [
"full",
"truncated",
"names"
],
"type": "string",
"default": "full",
"description": "Choose full breach objects, truncated objects, or breach names."
},
"response_format": {
"enum": [
"markdown",
"json"
],
"type": "string",
"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."
},
"includeUnverified": {
"type": "boolean",
"default": true,
"description": "Include unverified breaches. Defaults to true."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum number of items to include in the response. Defaults to 25. |
| offset | integer | Number of items to skip before returning results. Defaults to 0. |
| prefix* | string | 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. |
| response_format | string | Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"prefix"
],
"properties": {
"limit": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1,
"description": "Maximum number of items to include in the response. Defaults to 25."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "Number of items to skip before returning results. Defaults to 0."
},
"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."
},
"response_format": {
"enum": [
"markdown",
"json"
],
"type": "string",
"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."
}
}
}Return breached aliases for a verified domain. This tool requires an authorized subscription via OAuth bearer token.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum number of items to include in the response. Defaults to 25. |
| domain* | string | The verified domain to search. |
| offset | integer | Number of items to skip before returning results. Defaults to 0. |
| response_format | string | Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"domain"
],
"properties": {
"limit": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1,
"description": "Maximum number of items to include in the response. Defaults to 25."
},
"domain": {
"type": "string",
"description": "The verified domain to search."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "Number of items to skip before returning results. Defaults to 0."
},
"response_format": {
"enum": [
"markdown",
"json"
],
"type": "string",
"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."
}
}
}Return the most recently added public breach currently loaded into HIBP.
| Argument | Type | Description |
|---|---|---|
| response_format | string | Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"response_format": {
"enum": [
"markdown",
"json"
],
"type": "string",
"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."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum number of items to include in the response. Defaults to 25. |
| offset | integer | Number of items to skip before returning results. Defaults to 0. |
| account* | string | The email address to search for pastes. |
| response_format | string | Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"account"
],
"properties": {
"limit": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1,
"description": "Maximum number of items to include in the response. Defaults to 25."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "Number of items to skip before returning results. Defaults to 0."
},
"account": {
"type": "string",
"description": "The email address to search for pastes."
},
"response_format": {
"enum": [
"markdown",
"json"
],
"type": "string",
"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."
}
}
}Query the public Pwned Passwords k-anonymity API with a 5-character SHA-1 or NTLM prefix and return matching suffixes with prevalence counts.
| Argument | Type | Description |
|---|---|---|
| mode | string | Use SHA-1 by default or NTLM when mode is set to ntlm. |
| limit | integer | Maximum number of items to include in the response. Defaults to 25. |
| offset | integer | Number of items to skip before returning results. Defaults to 0. |
| prefix* | string | The first 5 hexadecimal characters of a SHA-1 or NTLM hash. |
| addPadding | boolean | Send the Add-Padding header and discard padded zero-count entries. |
| response_format | string | Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"prefix"
],
"properties": {
"mode": {
"enum": [
"sha1",
"ntlm"
],
"type": "string",
"default": "sha1",
"description": "Use SHA-1 by default or NTLM when mode is set to ntlm."
},
"limit": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1,
"description": "Maximum number of items to include in the response. Defaults to 25."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "Number of items to skip before returning results. Defaults to 0."
},
"prefix": {
"type": "string",
"pattern": "^[0-9A-Fa-f]{5}$",
"description": "The first 5 hexadecimal characters of a SHA-1 or NTLM hash."
},
"addPadding": {
"type": "boolean",
"default": false,
"description": "Send the Add-Padding header and discard padded zero-count entries."
},
"response_format": {
"enum": [
"markdown",
"json"
],
"type": "string",
"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."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| email* | string | The email address to search for in stealer logs. |
| limit | integer | Maximum number of items to include in the response. Defaults to 25. |
| offset | integer | Number of items to skip before returning results. Defaults to 0. |
| response_format | string | Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"description": "The email address to search for in stealer logs."
},
"limit": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1,
"description": "Maximum number of items to include in the response. Defaults to 25."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "Number of items to skip before returning results. Defaults to 0."
},
"response_format": {
"enum": [
"markdown",
"json"
],
"type": "string",
"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."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum number of items to include in the response. Defaults to 25. |
| domain* | string | The email domain to search for in stealer logs. |
| offset | integer | Number of items to skip before returning results. Defaults to 0. |
| response_format | string | Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"domain"
],
"properties": {
"limit": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1,
"description": "Maximum number of items to include in the response. Defaults to 25."
},
"domain": {
"type": "string",
"description": "The email domain to search for in stealer logs."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "Number of items to skip before returning results. Defaults to 0."
},
"response_format": {
"enum": [
"markdown",
"json"
],
"type": "string",
"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."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum number of items to include in the response. Defaults to 25. |
| domain* | string | The website domain to search for in stealer logs. |
| offset | integer | Number of items to skip before returning results. Defaults to 0. |
| response_format | string | Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"domain"
],
"properties": {
"limit": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1,
"description": "Maximum number of items to include in the response. Defaults to 25."
},
"domain": {
"type": "string",
"description": "The website domain to search for in stealer logs."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "Number of items to skip before returning results. Defaults to 0."
},
"response_format": {
"enum": [
"markdown",
"json"
],
"type": "string",
"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."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| response_format | string | Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"response_format": {
"enum": [
"markdown",
"json"
],
"type": "string",
"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."
}
}
}List public HIBP breaches, optionally filtered by domain, spam-list flag, and verification status.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum number of items to include in the response. Defaults to 25. |
| domain | string | Filter to breaches for a specific domain. |
| offset | integer | Number of items to skip before returning results. Defaults to 0. |
| isSpamList | boolean | Filter to breaches that are or are not flagged as spam lists. |
| response_format | string | Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent. |
| includeUnverified | boolean | Include unverified breaches. Defaults to true. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1,
"description": "Maximum number of items to include in the response. Defaults to 25."
},
"domain": {
"type": "string",
"description": "Filter to breaches for a specific domain."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "Number of items to skip before returning results. Defaults to 0."
},
"isSpamList": {
"type": "boolean",
"description": "Filter to breaches that are or are not flagged as spam lists."
},
"response_format": {
"enum": [
"markdown",
"json"
],
"type": "string",
"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."
},
"includeUnverified": {
"type": "boolean",
"default": true,
"description": "Include unverified breaches. Defaults to true."
}
}
}List the data classes used across public HIBP breach models, such as email addresses or passwords.
| Argument | Type | Description |
|---|---|---|
| response_format | string | Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"response_format": {
"enum": [
"markdown",
"json"
],
"type": "string",
"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."
}
}
}List the domains associated with the authenticated HIBP subscription.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum number of items to include in the response. Defaults to 25. |
| offset | integer | Number of items to skip before returning results. Defaults to 0. |
| response_format | string | Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1,
"description": "Maximum number of items to include in the response. Defaults to 25."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "Number of items to skip before returning results. Defaults to 0."
},
"response_format": {
"enum": [
"markdown",
"json"
],
"type": "string",
"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."
}
}
}Send a domain verification email to an approved alias such as admin or security. Requires an authenticated subscription with domain-verification access.
| Argument | Type | Description |
|---|---|---|
| domain* | string | The domain to verify by email. |
| emailAlias* | string | The approval alias to send the verification email to, for example admin. |
| response_format | string | Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"domain",
"emailAlias"
],
"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": {
"enum": [
"markdown",
"json"
],
"type": "string",
"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."
}
}
}Complete domain verification by checking the expected HIBP TXT record on the target domain. Requires an authenticated subscription with domain-verification access.
| Argument | Type | Description |
|---|---|---|
| domain* | string | The domain to verify by DNS. |
| response_format | string | Format only the text content as markdown (default) or a JSON string. The same machine-readable data is always returned in structuredContent. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"description": "The domain to verify by DNS."
},
"response_format": {
"enum": [
"markdown",
"json"
],
"type": "string",
"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."
}
}
}