Skip to main content
Glama
Jambozx

OnlineCyberTools MCP (280+ filterable tools)

by Jambozx

text_anagram_generator

Read-only

Generate anagrams from any text by rearranging its letters. Returns all permutations for inputs up to 8 characters, random shuffles for longer, with statistics and frequency map.

Instructions

Anagram Generator. Rearrange the letters of the supplied text into anagrams and return them with per-anagram length/is-original flags, summary statistics, and a character-frequency map. Input is cleaned to letters and digits only (punctuation/spaces removed) before permuting. For 8 or fewer cleaned characters it enumerates every distinct permutation deterministically; for longer input it emits random shuffles, so results vary between calls and are not idempotent. Operates only on the input's own letters — it does not consult a dictionary or wordlist, so outputs are letter rearrangements, not real words; for palindrome detection use text_palindrome_checker and for shuffling words/lines use text_randomizer. Pure local compute: read-only, non-destructive, offline, and rate-limited (60 requests/min for anonymous callers). Returns the anagram list, counts, and character frequencies.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
textYesSource text to rearrange; cleaned to letters/digits before permuting. Required and non-empty.
maxResultsNoMaximum number of anagrams to return. Clamped into 1-1000.
minLengthNoMinimum length an anagram must have to be included; also the minimum cleaned-text length (shorter input is rejected with 400). Clamped into 1-50.
includeOriginalNoWhen true the original (unshuffled) arrangement may appear in results; when false it is excluded.
caseSensitiveNoWhen false the cleaned text is lowercased before permuting; when true case is preserved.
sortByNoOrdering of the returned anagrams. length sorts longest-first; any other value sorts alphabetically.alphabetical

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
successNoAlways true on success.
resultNoAnagram results and derived statistics.
optionsNoThe effective parameters after clamping/normalization.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv0.5.1
    • changedInput schema / additionalProperties
      Previous value: -trueNew value: +false
    • addedInput schema / properties
      Added value: +{
      +  "caseSensitive": {
      +    "default": false,
      +    "description": "When false the cleaned text is lowercased before permuting; when true case is preserved.",
      +    "type": "boolean"
      +  },
      +  "includeOriginal": {
      +    "default": false,
      +    "description": "When true the original (unshuffled) arrangement may appear in results; when false it is excluded.",
      +    "type": "boolean"
      +  },
      +  "maxResults": {
      +    "default": 50,
      +    "description": "Maximum number of anagrams to return. Clamped into 1-1000.",
      +    "maximum": 1000,
      +    "minimum": 1,
      +    "type": "integer"
      +  },
      +  "minLength": {
      +    "default": 3,
      +    "description": "Minimum length an anagram must have to be included; also the minimum cleaned-text length (shorter input is rejected with 400). Clamped into 1-50.",
      +    "maximum": 50,
      +    "minimum": 1,
      +    "type": "integer"
      +  },
      +  "sortBy": {
      +    "default": "alphabetical",
      +    "description": "Ordering of the returned anagrams. length sorts longest-first; any other value sorts alphabetically.",
      +    "enum": [
      +      "alphabetical",
      +      "length"
      +    ],
      +    "type": "string"
      +  },
      +  "text": {
      +    "description": "Source text to rearrange; cleaned to letters/digits before permuting. Required and non-empty.",
      +    "type": "string"
      +  }
      +}
    • addedInput schema / required
      Added value: +[
      +  "text"
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "options": {
      +      "description": "The effective parameters after clamping/normalization.",
      +      "properties": {
      +        "caseSensitive": {
      +          "description": "Effective case-sensitivity flag.",
      +          "type": "boolean"
      +        },
      +        "includeOriginal": {
      +          "description": "Effective include-original flag.",
      +          "type": "boolean"
      +        },
      +        "maxResults": {
      +          "description": "Effective maximum result count.",
      +          "type": "integer"
      +        },
      +        "minLength": {
      +          "description": "Effective minimum length.",
      +          "type": "integer"
      +        },
      +        "sortBy": {
      +          "description": "Effective sort order.",
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "result": {
      +      "description": "Anagram results and derived statistics.",
      +      "properties": {
      +        "anagrams": {
      +          "description": "The generated anagrams after filtering and sorting.",
      +          "items": {
      +            "properties": {
      +              "anagram": {
      +                "description": "One letter rearrangement of the cleaned text.",
      +                "type": "string"
      +              },
      +              "isOriginal": {
      +                "description": "True if this arrangement equals the original cleaned text.",
      +                "type": "boolean"
      +              },
      +              "length": {
      +                "description": "Character length of this anagram.",
      +                "type": "integer"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "characterFrequency": {
      +          "additionalProperties": {
      +            "type": "integer"
      +          },
      +          "description": "Map of each cleaned-text character to its occurrence count, ordered by descending frequency.",
      +          "type": "object"
      +        },
      +        "statistics": {
      +          "description": "Summary counts for the input and the generated set.",
      +          "properties": {
      +            "averageLength": {
      +              "description": "Mean length of the returned anagrams, rounded to one decimal.",
      +              "type": "number"
      +            },
      +            "charactersRemoved": {
      +              "description": "Number of characters stripped during cleaning.",
      +              "type": "integer"
      +            },
      +            "cleanedLength": {
      +              "description": "Character length of the cleaned text.",
      +              "type": "integer"
      +            },
      +            "cleanedText": {
      +              "description": "Input after removing non-letter/digit characters and case-folding.",
      +              "type": "string"
      +            },
      +            "originalLength": {
      +              "description": "Character length of the raw input.",
      +              "type": "integer"
      +            },
      +            "originalText": {
      +              "description": "The raw input text as supplied.",
      +              "type": "string"
      +            },
      +            "totalAnagrams": {
      +              "description": "Number of anagrams returned.",
      +              "type": "integer"
      +            },
      +            "uniqueLetters": {
      +              "description": "Count of distinct characters in the cleaned text.",
      +              "type": "integer"
      +            }
      +          },
      +          "type": "object"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "success": {
      +      "description": "Always true on success.",
      +      "type": "boolean"
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

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

Describes behavioral traits beyond annotations: deterministic for ≤8 chars, random for longer, input cleaning, offline/rate-limiting, and that outputs are not real words. No contradiction with annotations.

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

Conciseness4/5

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

One dense paragraph covering all key aspects without redundancy. Could be slightly more structured (e.g., bullet points) but all information is necessary and front-loaded.

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 output schema present, no need to detail return values. The description covers input cleaning, deterministic vs random behavior, dictionary absence, alternatives, and constraints (rate limit, offline).

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

Parameters3/5

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

Schema has 100% coverage with descriptions. The description adds overall context but does not significantly augment individual parameter semantics beyond what schema already provides.

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 it generates anagrams by rearranging letters, lists return items (flags, stats, frequency map), and distinguishes from sibling tools like text_palindrome_checker and text_randomizer.

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 (anagram generation) and when not to (palindrome detection, word/line shuffling), naming specific alternatives. Also clarifies it does not use a dictionary.

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