{"serverId":"mcp-registry/io.github.leakdatahq/leakdata-mcp","tools":[{"name":"leakdata.action_plan","fixed":{"name":"leakdata_action_plan","description":"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; nev","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"title":"Your action plan","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"title":"Your action plan"},"changes":[{"kind":"name","detail":"Renamed \"leakdata.action_plan\" → \"leakdata_action_plan\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":175,"tokensAfter":175},{"name":"leakdata.breach_lookup","fixed":{"name":"leakdata_breach_lookup","description":"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 ","inputSchema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","maxLength":120,"minLength":1,"description":"Company, app, website or domain name, for example \"Canva\" or \"canva.com\". Never an email address, person's name or password."}},"additionalProperties":false},"annotations":{"title":"Look up a data breach","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"title":"Look up a data breach"},"changes":[{"kind":"name","detail":"Renamed \"leakdata.breach_lookup\" → \"leakdata_breach_lookup\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":237,"tokensAfter":237},{"name":"leakdata.company_monitoring","fixed":{"name":"leakdata_company_monitoring","description":"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.","inputSchema":{"type":"object","properties":{"domain":{"type":"string","maxLength":253,"minLength":3,"description":"The company domain the user gave, for example \"acme.com\". Omit when the user gave no domain; never infer it from a company name."}},"additionalProperties":false},"annotations":{"title":"Understand company monitoring","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"title":"Understand company monitoring"},"changes":[{"kind":"name","detail":"Renamed \"leakdata.company_monitoring\" → \"leakdata_company_monitoring\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":232,"tokensAfter":232},{"name":"leakdata.mark_step_done","fixed":{"name":"leakdata_mark_step_done","description":"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 ","inputSchema":{"type":"object","required":["stepId","done"],"properties":{"done":{"type":"boolean","description":"true when the user finished the step, false to reopen it."},"stepId":{"type":"string","maxLength":120,"minLength":10,"description":"stepId from leakdata.action_plan."}},"additionalProperties":false},"annotations":{"title":"Mark a step done","readOnlyHint":false,"openWorldHint":false,"idempotentHint":true,"destructiveHint":true},"title":"Mark a step done"},"changes":[{"kind":"name","detail":"Renamed \"leakdata.mark_step_done\" → \"leakdata_mark_step_done\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":241,"tokensAfter":241},{"name":"leakdata.protection_summary","fixed":{"name":"leakdata_protection_summary","description":"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 argumen","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"title":"Review your monitoring","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"title":"Review your monitoring"},"changes":[{"kind":"name","detail":"Renamed \"leakdata.protection_summary\" → \"leakdata_protection_summary\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":176,"tokensAfter":176},{"name":"leakdata.recent_breaches","fixed":{"name":"leakdata_recent_breaches","description":"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.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","default":5,"maximum":10,"minimum":1,"description":"How many breaches to return."}},"additionalProperties":false},"annotations":{"title":"Latest data breaches","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"title":"Latest data breaches"},"changes":[{"kind":"name","detail":"Renamed \"leakdata.recent_breaches\" → \"leakdata_recent_breaches\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":205,"tokensAfter":205},{"name":"leakdata.search","fixed":{"name":"leakdata_search","description":"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 ","inputSchema":{"type":"object","required":["type"],"properties":{"type":{"enum":["email"],"type":"string"},"query":{"type":"string","maxLength":320,"minLength":1,"description":"Omit to check the linked account's verified primary email. If the user typed an address of their own, pass it here; only the verified primary email is checked."}},"additionalProperties":false},"annotations":{"title":"Check your email","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"title":"Check your email"},"changes":[{"kind":"name","detail":"Renamed \"leakdata.search\" → \"leakdata_search\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":256,"tokensAfter":256}],"toolsChanged":7,"tokensSaved":0,"todo":[{"tool":"leakdata_search","params":["type"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}