protogrid

Search / io.github.leakdatahq/leakdata-mcp

LeakData

R0· no sign-in

Check breach exposure for your verified email and check locally computed password hash prefixes.

v1.3.2 · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality72needs work
Trust76of 100
Uptime, 30 days96%
Latency p50785 ms

Connect

8 clients · secrets stay placeholders
{
  "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

Quality 72 / 100needs work

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene93 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length2 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations7 of 7 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 1,874 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability25 · weight 15
  • warn
    stability.changes10 tool changes in 30 days
  • fail
    stability.rug_pull1 tools kept their name but changed most of their description in 30 days; review before trusting them
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

7 tools, about 1,874 tokens to load them all · tool set 9a4191538f93 · tools last changed 2026-10-19 · checked 2026-10-20 02:01 UTC

Tool changes

  • leakdata.password_prefix_checkremoved

    Call 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_doneadded

    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.action_planadded

    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.company_monitoringadded

    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.recent_breachesadded

    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.breach_lookupadded

    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.protection_summaryadded

    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.searchchangedtitle, description, input schema, annotationsmeaning changed
    before

    Use 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.

    after · 39% of words in common

    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_checkchangedannotations
  • leakdata.searchchangedannotations

Full 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.

Trust 76 / 100

no-repository
provenance45
liveness99
freshness85
hygiene80

+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.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://leakdata.io/mcp streamable-httpnoneyes96%785 ms2025-11-252026-10-19

Tools (7)

leakdata.action_planread-onlyUse 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-onlyUse 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-onlyUse 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_donedestructiveUse 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-onlyUse 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-onlyUse 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-onlyUse 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.

Similar MCP servers

Official server.json
{
  "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."
}