Random Number

Fornece aos LLMs habilidades essenciais de geração aleatória, construído inteiramente na biblioteca padrão do Python.

Documentação

Servidor MCP Random Number

Utilitários essenciais de geração de números aleatórios da biblioteca padrão do Python, incluindo operações pseudorrandômicas e criptograficamente seguras para inteiros, floats, seleções ponderadas, embaralhamento de listas e geração de tokens seguros.

Procurando a versão de habilidade de agente? random-number-skills implementa a mesma estratégia de geração de números aleatórios como uma habilidade de agente em vez de um servidor MCP.

Vídeo de Demonstração

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

Random Number MCP server

Ferramentas

FerramentaFinalidadeFunção Python
random_intGerar inteiros aleatóriosrandom.randint()
random_floatGerar floats aleatóriosrandom.uniform()
random_choicesEscolher itens de uma lista (pesos opcionais)random.choices()
random_shuffleRetornar uma nova lista com itens embaralhadosrandom.sample()
random_sampleEscolher k itens únicos da populaçãorandom.sample()
secure_token_hexGerar tokens hexadecimais criptograficamente segurossecrets.token_hex()
secure_random_intGerar inteiros criptograficamente segurossecrets.randbelow()

Configuração

Claude Desktop

Adicione isto ao seu arquivo de configuração do Claude Desktop:

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

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

Referência de Ferramentas

random_int

Gere um inteiro aleatório entre low e high (inclusive).

Parâmetros:

  • low (int): Limite inferior (inclusive)
  • high (int): Limite superior (inclusive)

Exemplo:

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

random_float

Gere um float aleatório entre low e high.

Parâmetros:

  • low (float, opcional): Limite inferior (padrão: 0.0)
  • high (float, opcional): Limite superior (padrão: 1.0)

Exemplo:

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

random_choices

Escolha k itens de uma população com reposição, opcionalmente ponderados.

Parâmetros:

  • population (lista): Lista de itens para escolher
  • k (int, opcional): Número de itens para escolher (padrão: 1)
  • weights (lista, opcional): Pesos para cada item (padrão: pesos iguais)

Exemplo:

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

random_shuffle

Retorne uma nova lista com itens em ordem aleatória.

Parâmetros:

  • items (lista): Lista de itens para embaralhar

Exemplo:

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

random_sample

Escolha k itens únicos da população sem reposição.

Parâmetros:

  • population (lista): Lista de itens para escolher
  • k (int): Número de itens para escolher

Exemplo:

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

secure_token_hex

Gere um token hexadecimal aleatório criptograficamente seguro.

Parâmetros:

  • nbytes (int, opcional): Número de bytes aleatórios (padrão: 32)

Exemplo:

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

secure_random_int

Gere um inteiro aleatório criptograficamente seguro abaixo de upper_bound.

Parâmetros:

  • upper_bound (int): Limite superior (exclusivo)

Exemplo:

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

Considerações de Segurança

Este pacote fornece tanto funções pseudorrandômicas padrão (adequadas para simulações, jogos, etc.) quanto funções criptograficamente seguras (adequadas para tokens, chaves, etc.):

  • Funções padrão (random_int, random_float, random_choices, random_shuffle): Usam o módulo random do Python - rápidas, mas não criptograficamente seguras
  • Funções seguras (secure_token_hex, secure_random_int): Usam o módulo secrets do Python - mais lentas, mas criptograficamente seguras

Desenvolvimento

Pré-requisitos

  • Python 3.10+
  • Gerenciador de pacotes uv

Configuração

# Clone the repository
git clone https://github.com/example/random-number-mcp
cd random-number-mcp

# Install dependencies
uv sync --dev

# Run tests
uv run pytest

# Run linting
uv run ruff check --fix
uv run ruff format

# Type checking
uv run mypy src/

Configuração do Cliente MCP

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

Nota: Substitua <path_to_your_repo>/random-number-mcp pelo caminho absoluto para o seu repositório clonado.

Compilação

# Build package
uv build

# Test installation
uv run --with dist/*.whl random-number-mcp

Lista de Verificação de Lançamento

  1. Atualizar Versão:

    • Incremente o número version em pyproject.toml, src/random_number_mcp/__init__.py e server.json.
  2. Atualizar Changelog:

    • Adicione uma nova entrada em CHANGELOG.md para o lançamento.

      • Rascunhe notas com agente de codificação usando contexto git diff.
      Update the @CHANGELOG.md for the latest release.
      List all significant changes, bug fixes, and new features.
      Here's the git diff:
      [GIT_DIFF]
      
    • Faça commit junto com quaisquer outras alterações pendentes.

  3. Criar Lançamento no GitHub:

    • Rascunhe um novo lançamento na interface do GitHub.
      • Marque o lançamento usando a interface.
    • O fluxo de trabalho do GitHub compilará e publicará automaticamente o pacote no PyPI.

Testando com o MCP Inspector

Para explorar e/ou desenvolver este servidor, use o utilitário npm do MCP Inspector:

# Install MCP Inspector
npm install -g @modelcontextprotocol/inspector

# Run local development server with the inspector
npx @modelcontextprotocol/inspector uv run random-number-mcp

# Run PyPI production server with the inspector
npx @modelcontextprotocol/inspector uvx random-number-mcp

Registro MCP

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

Licença

Licença MIT - consulte o arquivo LICENSE para detalhes.