Skip to main content
Glama
Jambozx

OnlineCyberTools MCP (280+ filterable tools)

by Jambozx

security_password_policy_generator

Read-onlyIdempotent

Generate a password policy document and validators (regex, JSON Schema, etc.) from your complexity constraints. Includes built-in compliance baselines such as NIST 800-63B and PCI DSS 4.0.

Instructions

Password Policy Document and Validator Generator. Generate a written corporate password policy (Markdown plus rendered HTML) together with machine-readable validators (regex, JSON Schema, nginx, htpasswd, Active Directory, k8s, JavaScript, Python) from declared complexity constraints. Set operation to generate with an input object of constraints, or operation presets to list 8 built-in compliance baselines (NIST 800-63B, PCI DSS 4.0, HIPAA, ISO 27001, OWASP ASVS, Microsoft Entra, Google Workspace) you can use as a starting input. Use security_password_policy_generator to author the rules a workforce must follow; use crypto_password_generator instead to produce actual random passwords, or crypto_password_strength to score one password. Deterministic from its inputs (same input gives same document), pure compute: read-only, non-destructive, contacts no external service, no randomness, and rate-limited (30 requests/minute for anonymous callers). Returns the policy markdown and html, a validator regex, a JSON Sch

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
operationYesgenerate builds a policy from the input object; presets ignores input and returns the 8 built-in compliance baselines.generate
inputNoPolicy constraints (required when operation is generate; ignored for presets).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
successNoWhether the request succeeded.
operationNoThe operation performed (generate or presets).
resultNoFor generate, the policy artifacts; for presets, a presets array.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed28 schema fields changedv0.5.1
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / input / additionalProperties
      Added value: +false
    • addedInput schema / properties / input / description
      Added value: +"Policy constraints (required when operation is generate; ignored for presets)."
    • addedInput schema / properties / input / properties / customRules
      Added value: +{
      +  "description": "Free-form extra rules appended to the policy document.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / input / properties / disallowCommonPasswords / default
      Added value: +true
    • addedInput schema / properties / input / properties / disallowCommonPasswords / description
      Added value: +"Mention common-password-list screening in the policy (defaults to true unless set false)."
    • addedInput schema / properties / input / properties / disallowDictionary
      Added value: +{
      +  "description": "Mention dictionary-word screening in the policy.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / input / properties / disallowedSubstrings
      Added value: +{
      +  "description": "Substrings that must not appear in the password (case-insensitive).",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / input / properties / lockoutDuration
      Added value: +{
      +  "description": "Lockout duration in minutes after the threshold is reached.",
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / input / properties / lockoutThreshold
      Added value: +{
      +  "description": "Failed-attempt count before account lockout.",
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / input / properties / maxLength
      Added value: +{
      +  "description": "Maximum password length; applied only when greater than or equal to minLength.",
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / input / properties / maxRepeatedChars
      Added value: +{
      +  "description": "Reject runs of the same character longer than N (such as aaa).",
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / input / properties / mfaRequired / description
      Added value: +"State that multi-factor authentication is required."
    • addedInput schema / properties / input / properties / minLength / description
      Added value: +"Minimum password length; required positive integer. Below 12 emits a NIST warning, below 8 a hard-fail warning."
    • addedInput schema / properties / input / properties / minLength / minimum
      Added value: +1
    • addedInput schema / properties / input / properties / requireDigit / description
      Added value: +"Require at least one 0-9 digit."
    • addedInput schema / properties / input / properties / requireLowercase / description
      Added value: +"Require at least one lowercase a-z character."
    • addedInput schema / properties / input / properties / requireSymbol / description
      Added value: +"Require at least one symbol from the symbol set."
    • addedInput schema / properties / input / properties / requireUppercase / description
      Added value: +"Require at least one uppercase A-Z character."
    • addedInput schema / properties / input / properties / rotationDays
      Added value: +{
      +  "description": "Mandatory rotation interval in days; 0 or omitted means no rotation.",
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / input / properties / sessionTimeout
      Added value: +{
      +  "description": "Authenticated-session inactivity timeout in minutes.",
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / input / properties / symbolSet
      Added value: +{
      +  "description": "Override the symbol set used by the regex and JS validator. Defaults to a standard punctuation set.",
      +  "type": "string"
      +}
    • changedInput schema / properties / input / required
      Previous value: -[
      -  "minLength",
      -  "requireUppercase",
      -  "requireLowercase",
      -  "requireDigit",
      -  "requireSymbol",
      -  "disallowCommonPasswords",
      -  "mfaRequired"
      -]New value: +[
      +  "minLength"
      +]
    • addedInput schema / properties / operation / default
      Added value: +"generate"
    • addedInput schema / properties / operation / description
      Added value: +"generate builds a policy from the input object; presets ignores input and returns the 8 built-in compliance baselines."
    • addedInput schema / properties / operation / enum
      Added value: +[
      +  "generate",
      +  "presets"
      +]
    • changedInput schema / required
      Previous value: -[
      -  "operation",
      -  "input"
      -]New value: +[
      +  "operation"
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "operation": {
      +      "description": "The operation performed (generate or presets).",
      +      "type": "string"
      +    },
      +    "result": {
      +      "description": "For generate, the policy artifacts; for presets, a presets array.",
      +      "properties": {
      +        "configSnippets": {
      +          "description": "Platform-specific validator snippets.",
      +          "properties": {
      +            "activeDirectory": {
      +              "description": "Active Directory fine-grained password policy snippet.",
      +              "type": "string"
      +            },
      +            "htpasswd": {
      +              "description": "Apache htpasswd guidance snippet.",
      +              "type": "string"
      +            },
      +            "javascript": {
      +              "description": "JavaScript validatePassword function.",
      +              "type": "string"
      +            },
      +            "k8sValidator": {
      +              "description": "Kubernetes admission validator snippet.",
      +              "type": "string"
      +            },
      +            "nginx": {
      +              "description": "nginx or Lua validation snippet.",
      +              "type": "string"
      +            },
      +            "python": {
      +              "description": "Python validation function.",
      +              "type": "string"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "entropy": {
      +          "description": "Worst-case (uniform) entropy estimate for the minimum-length password.",
      +          "properties": {
      +            "breakdownByClass": {
      +              "description": "Per-character-class alphabet sizes contributing to entropy.",
      +              "items": {
      +                "description": "A character-class contribution entry.",
      +                "type": "object"
      +              },
      +              "type": "array"
      +            },
      +            "classification": {
      +              "description": "Bucket: weak, adequate, strong, or overkill.",
      +              "type": "string"
      +            },
      +            "minEntropyBits": {
      +              "description": "Worst-case entropy in bits at minLength.",
      +              "type": "number"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "html": {
      +          "description": "The same policy rendered to HTML.",
      +          "type": "string"
      +        },
      +        "jsonSchema": {
      +          "description": "A JSON Schema fragment validating a password string.",
      +          "type": "object"
      +        },
      +        "markdown": {
      +          "description": "The password policy as a Markdown document.",
      +          "type": "string"
      +        },
      +        "presets": {
      +          "description": "For operation presets: the 8 built-in baseline definitions (id, name, description, input).",
      +          "items": {
      +            "description": "A built-in compliance baseline.",
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "regex": {
      +          "description": "A single regular expression enforcing the constraints.",
      +          "type": "string"
      +        },
      +        "warnings": {
      +          "description": "Compliance and security warnings about the chosen constraints.",
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "success": {
      +      "description": "Whether the request succeeded.",
      +      "type": "boolean"
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observedv0.1.0

TDQS

A4.9/5.0
Behavior5/5

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

Describes determinism, pure compute, read-only, non-destructive, no external service contact, rate limit (30/min for anonymous), and output format, adding value beyond annotations.

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?

Information is front-loaded, each sentence serves a purpose, no redundancy, and well-structured despite length.

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

Completeness5/5

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

With an output schema and full parameter descriptions, the description covers purpose, usage, behavior, and output, leaving no gaps for an agent.

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?

Schema description coverage is 100%, so baseline is 3. Description adds context for the operation parameter (generate vs presets) and clarifies usage, boosting it to 4.

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?

Clearly states it generates a password policy document and validators, and distinguishes from sibling tools like crypto_password_generator and crypto_password_strength.

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

Usage Guidelines5/5

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

Explicitly states when to use this tool versus alternatives, and describes the two operations (generate and presets) with clear usage context.

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

Deploy Server

Other Tools