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
Ferramentas
| Ferramenta | Finalidade | Função Python |
|---|---|---|
random_int | Gerar inteiros aleatórios | random.randint() |
random_float | Gerar floats aleatórios | random.uniform() |
random_choices | Escolher itens de uma lista (pesos opcionais) | random.choices() |
random_shuffle | Retornar uma nova lista com itens embaralhados | random.sample() |
random_sample | Escolher k itens únicos da população | random.sample() |
secure_token_hex | Gerar tokens hexadecimais criptograficamente seguros | secrets.token_hex() |
secure_random_int | Gerar inteiros criptograficamente seguros | secrets.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 escolherk(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 escolherk(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ódulorandomdo Python - rápidas, mas não criptograficamente seguras - Funções seguras (
secure_token_hex,secure_random_int): Usam o módulosecretsdo 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
-
Atualizar Versão:
- Incremente o número
versionempyproject.toml,src/random_number_mcp/__init__.pyeserver.json.
- Incremente o número
-
Atualizar Changelog:
-
Adicione uma nova entrada em
CHANGELOG.mdpara 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] - Rascunhe notas com agente de codificação usando contexto
-
Faça commit junto com quaisquer outras alterações pendentes.
-
-
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.
- Rascunhe um novo lançamento na interface do GitHub.
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.