Skip to main content
Glama
paladini

devutils-mcp-server

generate_password

Create secure random passwords with customizable length, character types, and multiple generation options for enhanced security.

Instructions

Generate a secure random password with configurable options.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
lengthNoPassword length (4-256, default: 16)
uppercaseNoInclude uppercase letters (default: true)
lowercaseNoInclude lowercase letters (default: true)
numbersNoInclude numbers (default: true)
symbolsNoInclude symbols (default: true)
countNoNumber of passwords to generate (1-50)

Implementation Reference

  • The generate_password tool registration and handler implementation. It uses `server.tool` to define the schema and the async handler logic, including password generation based on character constraints.
    server.tool(
      "generate_password",
      "Generate a secure random password with configurable options.",
      {
        length: z
          .number()
          .int()
          .min(4)
          .max(256)
          .default(16)
          .describe("Password length (4-256, default: 16)"),
        uppercase: z
          .boolean()
          .default(true)
          .describe("Include uppercase letters (default: true)"),
        lowercase: z
          .boolean()
          .default(true)
          .describe("Include lowercase letters (default: true)"),
        numbers: z
          .boolean()
          .default(true)
          .describe("Include numbers (default: true)"),
        symbols: z
          .boolean()
          .default(true)
          .describe("Include symbols (default: true)"),
        count: z
          .number()
          .int()
          .min(1)
          .max(50)
          .default(1)
          .describe("Number of passwords to generate (1-50)"),
      },
      async ({ length, uppercase, lowercase, numbers, symbols, count }) => {
        let charset = "";
        if (uppercase) charset += "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        if (lowercase) charset += "abcdefghijklmnopqrstuvwxyz";
        if (numbers) charset += "0123456789";
        if (symbols) charset += "!@#$%^&*()_+-=[]{}|;:,.<>?";
    
        if (charset.length === 0) {
          return {
            content: [
              {
                type: "text" as const,
                text: "Error: At least one character type must be enabled",
              },
            ],
            isError: true,
          };
        }
    
        const passwords = Array.from({ length: count }, () => {
          const bytes = randomBytes(length);
          return Array.from(bytes)
            .map((b) => charset[b % charset.length])
            .join("");
        });
    
        return {
          content: [{ type: "text" as const, text: passwords.join("\n") }],
        };
      }
    );

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/paladini/devutils-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server