Random Number Mcp

io.github.zazencodesPublished by GitHub account zazencodesv0.1.2Updated Oct 24, 2026

Essential random number generation utilities from the Python standard library

VerifiedSTDIODesktop onlyDeveloper ToolsSecurity & Monitoring

Overview

AI-generated overview

A local MCP server that gives an assistant random number utilities: integers, floats, weighted picks, shuffles, samples and secure tokens.

What you can do
Generate pseudorandom integers and floats within a range, and pick items from a list with optional weights or without replacement, or return a shuffled copy of a list. Generate cryptographically secure hex tokens and secure random integers below a bound. Standard tools use Python's random module; secure tools use the secrets module.
When to use it
Useful when an assistant needs dice rolls, simulations, test data, random sampling or shuffling, or secure token and key material generated locally rather than invented by the model.
Requirements
Runs as a local stdio process on the user's machine, started with uvx from the PyPI package random-number-mcp. Python 3.10+ and the uv package manager are needed. No authentication, environment variables or headers are declared.
Before you install
Only the secure tools (secure_token_hex, secure_random_int) are cryptographically secure; the standard tools are not suitable for tokens or keys. Generated tokens are returned to the assistant and may appear in conversation logs, so treat them as exposed if used for real secrets.

Installation

In SourceWeft

  1. Open Random Number Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Random Number MCP

Essential random number generation utilities from the Python standard library, including pseudorandom and cryptographically secure operations for integers, floats, weighted selections, list shuffling, and secure token generation.

Looking for the agent skill version? random-number-skills implements the same random number generation strategy as an agent skill instead of an MCP server.

Demo Video

https://github.com/user-attachments/assets/303a441a-2b10-47e3-b2a5-c8b51840e362

[Random Number MCP server]

Tools

ToolPurposePython function
random_intGenerate random integersrandom.randint()
random_floatGenerate random floatsrandom.uniform()
random_choicesChoose items from a list (optional weights)random.choices()
random_shuffleReturn a new list with items shuffledrandom.sample()
random_sampleChoose k unique items from populationrandom.sample()
secure_token_hexGenerate cryptographically secure hex tokenssecrets.token_hex()
secure_random_intGenerate cryptographically secure integerssecrets.randbelow()

Setup

Claude Desktop

Add this to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json

json
{  "mcpServers": {    "random-number": {      "command": "uvx",      "args": ["random-number-mcp"]    }  }}

Tool Reference

random_int

Generate a random integer between low and high (inclusive).

Parameters:

  • low (int): Lower bound (inclusive)
  • high (int): Upper bound (inclusive)

Example:

json
{  "name": "random_int",  "arguments": {    "low": 1,    "high": 100  }}

random_float

Generate a random float between low and high.

Parameters:

  • low (float, optional): Lower bound (default: 0.0)
  • high (float, optional): Upper bound (default: 1.0)

Example:

json
{  "name": "random_float",  "arguments": {    "low": 0.5,    "high": 2.5  }}

random_choices

Choose k items from a population with replacement, optionally weighted.

Parameters:

  • population (list): List of items to choose from
  • k (int, optional): Number of items to choose (default: 1)
  • weights (list, optional): Weights for each item (default: equal weights)

Example:

json
{  "name": "random_choices",  "arguments": {    "population": ["red", "blue", "green", "yellow"],    "k": 2,    "weights": [0.4, 0.3, 0.2, 0.1]  }}

random_shuffle

Return a new list with items in random order.

Parameters:

  • items (list): List of items to shuffle

Example:

json
{  "name": "random_shuffle",  "arguments": {    "items": [1, 2, 3, 4, 5]  }}

random_sample

Choose k unique items from population without replacement.

Parameters:

  • population (list): List of items to choose from
  • k (int): Number of items to choose

Example:

json
{  "name": "random_sample",  "arguments": {    "population": ["a", "b", "c", "d", "e"],    "k": 2  }}

secure_token_hex

Generate a cryptographically secure random hex token.

Parameters:

  • nbytes (int, optional): Number of random bytes (default: 32)

Example:

json
{  "name": "secure_token_hex",  "arguments": {    "nbytes": 16  }}

secure_random_int

Generate a cryptographically secure random integer below upper_bound.

Parameters:

  • upper_bound (int): Upper bound (exclusive)

Example:

json
{  "name": "secure_random_int",  "arguments": {    "upper_bound": 1000  }}

Security Considerations

This package provides both standard pseudorandom functions (suitable for simulations, games, etc.) and cryptographically secure functions (suitable for tokens, keys, etc.):

  • Standard functions (random_int, random_float, random_choices, random_shuffle): Use Python's random module - fast but not cryptographically secure
  • Secure functions (secure_token_hex, secure_random_int): Use Python's secrets module - slower but cryptographically secure

Development

Prerequisites

  • Python 3.10+
  • uv package manager

Setup

bash
# Clone the repositorygit clone https://github.com/example/random-number-mcpcd random-number-mcp
# Install dependenciesuv sync --dev
# Run testsuv run pytest
# Run lintinguv run ruff check --fixuv run ruff format
# Type checkinguv run mypy src/

MCP Client Config

json
{  "mcpServers": {    "random-number-dev": {      "command": "uv",      "args": [        "--directory",        "<path_to_your_repo>/random-number-mcp",        "run",        "random-number-mcp"      ]    }  }}

Note: Replace <path_to_your_repo>/random-number-mcp with the absolute path to your cloned repository.

Building

bash
# Build packageuv build
# Test installationuv run --with dist/*.whl random-number-mcp

Release Checklist

  1. Update Version:

    • Increment the version number in pyproject.toml, src/random_number_mcp/__init__.py, and server.json.
  2. Update Changelog:

    • Add a new entry in CHANGELOG.md for the release.

      • Draft notes with coding agent using git diff context.
      Update the @CHANGELOG.md for the latest release.List all significant changes, bug fixes, and new features.Here's the git diff:[GIT_DIFF]
    • Commit along with any other pending changes.

  3. Create GitHub Release:

    • Draft a new release on the GitHub UI.
      • Tag release using UI.
    • The GitHub workflow will automatically build and publish the package to PyPI.

Testing with MCP Inspector

For exploring and/or developing this server, use the MCP Inspector npm utility:

bash
# Install MCP Inspectornpm install -g @modelcontextprotocol/inspector
# Run local development server with the inspectornpx @modelcontextprotocol/inspector uv run random-number-mcp
# Run PyPI production server with the inspectornpx @modelcontextprotocol/inspector uvx random-number-mcp

MCP Registry

mcp-name: io.github.zazencodes/random-number-mcp

License

MIT License - see LICENSE file for details.

Source: README.md at commit 575338c

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.2LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts