Skip to main content
Glama
crisjonblvx

enrichrapi-mcp

by crisjonblvx

check_password_breach

Check if a password has been exposed in data breaches and evaluate its strength, using a privacy-preserving hash method that never sends the plaintext.

Instructions

Check if a password has appeared in known data breaches and assess its strength.

Uses the HaveIBeenPwned k-anonymity API — only the first 5 characters of the SHA-1 hash are sent externally. The plaintext password never leaves the server.

Args: password: The password to check (never logged or stored)

Returns: dict with keys: breached, breach_count, strength, score (0-7), entropy_bits, length, cost_usd

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
passwordYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations to lean on, the description fully discloses critical behavioral traits: it uses the HaveIBeenPwned k-anonymity API, sends only the first 5 characters of the SHA-1 hash, never lets the plaintext password leave the server, and never logs or stores the password. This is exactly the kind of privacy-critical transparency that matters for a password-handling tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficient and well-structured: a clear one-line purpose, a focused privacy note, and concise Args/Returns sections. Every sentence provides necessary information, and the most important scoping detail is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has one parameter and no output schema, so the description correctly includes the return keys to tell the agent what to expect. It could add details about error handling or rate limits, but for a single-parameter utility, the provided information is sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema only defines password as a required string with no description, so the description must compensate. It does so by explaining the password is the value to check and emphasizing it is never logged or stored. This adds meaningful behavioral context beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb and resource: 'Check if a password has appeared in known data breaches and assess its strength.' It distinguishes itself from sibling tools like generate_password or enrich_* by focusing on breach checking and strength assessment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The first sentence makes the tool's intended use obvious: when an agent needs to verify whether a password is breached and gauge its strength. No explicit 'when not to use' or alternative routing is provided, but no sibling tool performs the same function, so implied usage is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.