Skip to main content
Glama
zazencodes

Random Number MCP

by zazencodes

random_choices

Select k items from a population with optional weighted probabilities. Use this tool for random sampling with replacement in applications requiring weighted or unbiased selections.

Instructions

Choose k items from population with replacement, optionally weighted.

Args: population: List of items to choose from k: Number of items to choose (default 1) weights: Optional weights for each item (default None for equal weights)

Returns: List of k chosen items

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kNo
populationYes
weightsNo

Implementation Reference

  • MCP tool handler for 'random_choices'. Handles optional JSON string weights and delegates core logic to tools.random_choices.
    @app.tool() def random_choices( population: list[Any], k: int = 1, weights: list[int | float] | str | None = None, ) -> list[Any]: """Choose k items from population with replacement, optionally weighted. Args: population: List of items to choose from k: Number of items to choose (default 1) weights: Optional weights for each item (default None for equal weights) Returns: List of k chosen items """ numeric_weights: list[int | float] | None = None if isinstance(weights, str): try: numeric_weights = json.loads(weights) except json.JSONDecodeError as e: raise ValueError(f"Invalid JSON string for weights: {weights}") from e else: numeric_weights = weights return tools.random_choices(population, k, numeric_weights)
  • Core helper function implementing random choices logic using Python's random.choices, with input validation.
    def random_choices( population: list[Any], k: int = 1, weights: list[int | float] | None = None ) -> list[Any]: """Choose k items from population with replacement, optionally weighted. Args: population: List of items to choose from k: Number of items to choose (default 1) weights: Optional weights for each item (default None for equal weights) Returns: List of k chosen items Raises: ValueError: If population is empty, k < 0, or weights length doesn't match TypeError: If k is not an integer """ validate_list_not_empty(population, "population") validate_positive_int(k, "k") if weights is not None: validate_weights_match_population(population, weights) return random.choices(population, weights=weights, k=k)

Other Tools

Related Tools

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/zazencodes/random-number-mcp'

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