Search / io.github.leakdatahq/leakdata-mcp
LeakData
R0· no sign-inCheck breach exposure for your verified email and check locally computed password hash prefixes.
v1.3.2 · active · website · descriptor JSON · versions
Search / io.github.leakdatahq/leakdata-mcp
R0· no sign-inCheck breach exposure for your verified email and check locally computed password hash prefixes.
v1.3.2 · active · website · descriptor JSON · versions
{
"mcpServers": {
"leakdata-mcp": {
"type": "http",
"url": "https://leakdata.io/mcp"
}
}
}claude mcp add --transport http leakdata-mcp https://leakdata.io/mcp[mcp_servers.leakdata-mcp]
url = "https://leakdata.io/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"leakdata-mcp": {
"type": "remote",
"url": "https://leakdata.io/mcp",
"enabled": true
}
}
}{
"mcpServers": {
"leakdata-mcp": {
"type": "http",
"url": "https://leakdata.io/mcp"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=leakdata-mcp&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbGVha2RhdGEuaW8vbWNwIn0%3D"
}{
"servers": {
"leakdata-mcp": {
"type": "http",
"url": "https://leakdata.io/mcp"
}
}
}{
"mcpServers": {
"leakdata-mcp": {
"httpUrl": "https://leakdata.io/mcp"
}
}
}extensions:
"leakdata-mcp":
enabled: true
name: "leakdata-mcp"
type: streamable_http
uri: "https://leakdata.io/mcp"
timeout: 300
protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28protocol.statelessonly applies to 2026-07-28 serversprotocol.transportstreamable HTTPprotocol.list_ttlonly applies to 2026-07-28 serversauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_length2 tools have descriptions over 1,024 characters, which crowds the contexttools.schemasevery tool has an object input schematools.annotations7 of 7 tools declare readOnlyHint or destructiveHinttools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHinttools.token_costabout 1,874 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changes10 tool changes in 30 daysstability.rug_pull1 tools kept their name but changed most of their description in 30 days; review before trusting themdeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packageleakdata.password_prefix_checkremovedCall this only when the current user message supplies a locally computed five-character SHA-1 hash prefix and asks to check it. Never invent a prefix or reuse one from an earlier message. For general questions about password checks, explain local SHA-1 computation and sharing only its first five hexadecimal characters without calling a tool. Never accept a plaintext password or complete hash. Report only the aggregate values actually returned by this call. Results describe a prefix group only. A matching prefix does not establish whether a particular password is exposed. Do not report confirmed password exposure or recommend changing a password based only on this result. An empty group does not prove that a password is safe.
leakdata.mark_step_doneaddedUse this only after the user says they completed (or want to reopen) a specific step from leakdata.action_plan, for example "I changed my Canva password". Pass that step's stepId from leakdata.action_plan and done=true, or done=false to reopen it; if no action plan result in this conversation contains the step, call leakdata.action_plan first. Saves the change to the user's LeakData action plan; it does not change anything on the breached site. A request to mark all or several steps done is not confirmation: ask which steps the user actually finished and call this once per confirmed step. Never guess a stepId.
leakdata.action_planaddedUse this when the linked LeakData user asks what they should do about their breaches, what is left on their list, or wants to be walked through the steps. Returns the open and done steps of the user's own action plan (for example "Change your password" on a breached site), each with a stepId, the service it applies to, the masked monitored address and whether it is done. Walk the user through open steps one at a time, in the order returned (most urgent first). Report only the returned steps; never invent steps or mark progress yourself. Takes no arguments.
leakdata.company_monitoringaddedUse this when someone asks about their own company or employer: whether it had a data breach, whether its domain, staff email addresses or work accounts appear in data breaches, or how to monitor a business domain. Explains what LeakData checks for a domain the company verifies it owns and returns any public catalog breaches listed for exactly that domain with their details. Explain setup using the returned checks and requirements; do not offer plans, prices or sales links. No sign-in is needed. It does not search employee addresses or reveal any person's data; never claim it did. Not listed means not in LeakData's catalog, not that the company was never breached.
leakdata.recent_breachesaddedUse this when someone asks which data breaches happened recently or what the latest breaches are. Returns the newest breaches in LeakData's public catalog, newest incident date first, with date, affected account count, exposed data types and first steps. No sign-in is needed. It has no date filter: check the returned dates and say so when none fall in the period the user asked about. It is LeakData's catalog, not every breach worldwide. Not for general security, ransomware or vulnerability news.
leakdata.breach_lookupaddedUse this when someone asks whether a company, app or website was hacked or had a data breach, what data leaked, whether a breach notice they received is real, or what to do about a breach they heard of ("Was Canva hacked?", "What leaked in the Ticketmaster breach?"). Searches LeakData's public breach catalog by company, service or domain name and returns each matching breach's date, affected account count, exposed data types, a short summary and the first steps to take. No sign-in is needed. It does not tell whether a particular person's email is in the breach: when emailCheckAvailable is true, offer to check the user's own email with leakdata.search; when it is false, say LeakData cannot check addresses against that breach. When match is "similar", say the name only resembles what the user asked about. No match means the breach is not in LeakData's catalog, not that the company was never breached. If the company is the user's own business or employer, use leakdata.company_monitoring instead. Not for general security news or a person's name.
leakdata.protection_summaryaddedUse this when the linked LeakData user asks how their monitoring is going, what LeakData has found for them, or whether anything new turned up. Returns the user's own monitored email addresses (masked), when each was last checked, how many findings each has, new findings in the last 30 days, and a count of open action-plan steps. It reports stored monitoring results; for a fresh check of the user's email use leakdata.search, and for the steps themselves use leakdata.action_plan. Takes no arguments. Report only the returned values.
leakdata.searchchangedtitle, description, input schema, annotationsmeaning changedUse this when the linked LeakData user asks to check their verified primary email. For a current check, call this tool and report only its returned results. Never present earlier conversation results as a new check; if the call fails, say the check could not be completed. For their own email without an address, set type to email and omit query: the server resolves the verified primary email from the linked account. If the user supplies an email address, preserve it in query for ownership validation. Never guess an email address or recover it from earlier conversations when query can be omitted. Domain checks are not available through this app; explain this without calling a tool. Arbitrary third-party identifiers, usernames, phone numbers, raw leak records, and credentials are not returned.
Use this when the linked LeakData user asks whether their own email was in a data breach ("Has my email been leaked?", "Am I in the Canva breach?", "Am I affected by any recent leaks?"). For a current check, call this tool and report only its returned results; never present earlier results as a new check, and if the call fails say the check could not be completed. For their own email, set type to email and omit query: the server uses the verified primary email of the linked account. If the user typed an address of their own, put it in query; only the verified primary email is checked, and for another address they own the result explains how to add it in LeakData. Never call this for someone else's address or to look up passwords, and never guess an address. No results means no LeakData record matched: never say the email is safe or was never leaked; a breach whose records LeakData does not hold cannot show up. Results for the user's other monitored addresses come from leakdata.protection_summary; company domains use leakdata.company_monitoring.
leakdata.password_prefix_checkchangedannotationsleakdata.searchchangedannotationsFull history: list_changes · trend: quality JSON.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+website +reachable +uptime-96% ~updated-40d-ago -no-repository
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://leakdata.io/mcp streamable-http | none | yes | 96% | 785 ms | 2025-11-25 | 2026-10-19 |
leakdata.action_planread-only | Use this when the linked LeakData user asks what they should do about their breaches, what is left on their list, or wants to be walked through the steps. Returns the open and done steps of the user's own action plan (for example "Change your password" on a breached site), each with a stepId, the service it applies to, the masked monitored address and whether it is done. Walk the user through open steps one at a time, in the order returned (most urgent first). Report only the returned steps; never invent steps or mark progress yourself. Takes no arguments. |
leakdata.breach_lookupread-only | Use this when someone asks whether a company, app or website was hacked or had a data breach, what data leaked, whether a breach notice they received is real, or what to do about a breach they heard of ("Was Canva hacked?", "What leaked in the Ticketmaster breach?"). Searches LeakData's public breach catalog by company, service or domain name and returns each matching breach's date, affected account count, exposed data types, a short summary and the first steps to take. No sign-in is needed. It does not tell whether a particular person's email is in the breach: when emailCheckAvailable is true, offer to check the user's own email with leakdata.search; when it is false, say LeakData cannot check addresses against that breach. When match is "similar", say the name only resembles what the user asked about. No match means the breach is not in LeakData's catalog, not that the company was never breached. If the company is the user's own business or employer, use leakdata.company_monitoring instead. Not for general security news or a person's name. |
leakdata.company_monitoringread-only | Use this when someone asks about their own company or employer: whether it had a data breach, whether its domain, staff email addresses or work accounts appear in data breaches, or how to monitor a business domain. Explains what LeakData checks for a domain the company verifies it owns and returns any public catalog breaches listed for exactly that domain with their details. Explain setup using the returned checks and requirements; do not offer plans, prices or sales links. No sign-in is needed. It does not search employee addresses or reveal any person's data; never claim it did. Not listed means not in LeakData's catalog, not that the company was never breached. |
leakdata.mark_step_donedestructive | Use this only after the user says they completed (or want to reopen) a specific step from leakdata.action_plan, for example "I changed my Canva password". Pass that step's stepId from leakdata.action_plan and done=true, or done=false to reopen it; if no action plan result in this conversation contains the step, call leakdata.action_plan first. Saves the change to the user's LeakData action plan; it does not change anything on the breached site. A request to mark all or several steps done is not confirmation: ask which steps the user actually finished and call this once per confirmed step. Never guess a stepId. |
leakdata.protection_summaryread-only | Use this when the linked LeakData user asks how their monitoring is going, what LeakData has found for them, or whether anything new turned up. Returns the user's own monitored email addresses (masked), when each was last checked, how many findings each has, new findings in the last 30 days, and a count of open action-plan steps. It reports stored monitoring results; for a fresh check of the user's email use leakdata.search, and for the steps themselves use leakdata.action_plan. Takes no arguments. Report only the returned values. |
leakdata.recent_breachesread-only | Use this when someone asks which data breaches happened recently or what the latest breaches are. Returns the newest breaches in LeakData's public catalog, newest incident date first, with date, affected account count, exposed data types and first steps. No sign-in is needed. It has no date filter: check the returned dates and say so when none fall in the period the user asked about. It is LeakData's catalog, not every breach worldwide. Not for general security, ransomware or vulnerability news. |
leakdata.searchread-only | Use this when the linked LeakData user asks whether their own email was in a data breach ("Has my email been leaked?", "Am I in the Canva breach?", "Am I affected by any recent leaks?"). For a current check, call this tool and report only its returned results; never present earlier results as a new check, and if the call fails say the check could not be completed. For their own email, set type to email and omit query: the server uses the verified primary email of the linked account. If the user typed an address of their own, put it in query; only the verified primary email is checked, and for another address they own the result explains how to add it in LeakData. Never call this for someone else's address or to look up passwords, and never guess an address. No results means no LeakData record matched: never say the email is safe or was never leaked; a breach whose records LeakData does not hold cannot show up. Results for the user's other monitored addresses come from leakdata.protection_summary; company domains use leakdata.company_monitoring. |
Schemas: list_tools.
{
"name": "io.github.leakdatahq/leakdata-mcp",
"icons": [
{
"src": "https://leakdata.io/favicon-96-transparent.png",
"sizes": [
"96x96"
],
"mimeType": "image/png"
}
],
"title": "LeakData",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://leakdata.io/mcp",
"type": "streamable-http"
}
],
"version": "1.3.2",
"websiteUrl": "https://leakdata.io/docs",
"description": "Check breach exposure for your verified email and check locally computed password hash prefixes."
}