Random Number
Proporciona a los LLMs capacidades esenciales de generación aleatoria, construido completamente sobre la biblioteca estándar de Python.
Documentación
Servidor MCP de Números Aleatorios
Utilidades esenciales de generación de números aleatorios de la biblioteca estándar de Python, incluyendo operaciones pseudoraleatorias y criptográficamente seguras para enteros, flotantes, selecciones ponderadas, mezcla de listas y generación de tokens seguros.
¿Buscas la versión de habilidad de agente? random-number-skills implementa la misma estrategia de generación de números aleatorios como una habilidad de agente en lugar de un servidor MCP.
Video de Demostración
https://github.com/user-attachments/assets/303a441a-2b10-47e3-b2a5-c8b51840e362
Herramientas
| Herramienta | Propósito | Función de Python |
|---|---|---|
random_int | Generar enteros aleatorios | random.randint() |
random_float | Generar flotantes aleatorios | random.uniform() |
random_choices | Elegir elementos de una lista (pesos opcionales) | random.choices() |
random_shuffle | Devolver una nueva lista con elementos mezclados | random.sample() |
random_sample | Elegir k elementos únicos de una población | random.sample() |
secure_token_hex | Generar tokens hexadecimales criptográficamente seguros | secrets.token_hex() |
secure_random_int | Generar enteros criptográficamente seguros | secrets.randbelow() |
Configuración
Claude Desktop
Añade esto a tu archivo de configuración de 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"]
}
}
}
Referencia de Herramientas
random_int
Genera un entero aleatorio entre low y high (inclusive).
Parámetros:
low(int): Límite inferior (inclusive)high(int): Límite superior (inclusive)
Ejemplo:
{
"name": "random_int",
"arguments": {
"low": 1,
"high": 100
}
}
random_float
Genera un flotante aleatorio entre low y high.
Parámetros:
low(float, opcional): Límite inferior (predeterminado: 0.0)high(float, opcional): Límite superior (predeterminado: 1.0)
Ejemplo:
{
"name": "random_float",
"arguments": {
"low": 0.5,
"high": 2.5
}
}
random_choices
Elige k elementos de una población con reemplazo, opcionalmente ponderados.
Parámetros:
population(lista): Lista de elementos para elegirk(int, opcional): Número de elementos a elegir (predeterminado: 1)weights(lista, opcional): Pesos para cada elemento (predeterminado: pesos iguales)
Ejemplo:
{
"name": "random_choices",
"arguments": {
"population": ["red", "blue", "green", "yellow"],
"k": 2,
"weights": [0.4, 0.3, 0.2, 0.1]
}
}
random_shuffle
Devuelve una nueva lista con elementos en orden aleatorio.
Parámetros:
items(lista): Lista de elementos a mezclar
Ejemplo:
{
"name": "random_shuffle",
"arguments": {
"items": [1, 2, 3, 4, 5]
}
}
random_sample
Elige k elementos únicos de una población sin reemplazo.
Parámetros:
population(lista): Lista de elementos para elegirk(int): Número de elementos a elegir
Ejemplo:
{
"name": "random_sample",
"arguments": {
"population": ["a", "b", "c", "d", "e"],
"k": 2
}
}
secure_token_hex
Genera un token hexadecimal aleatorio criptográficamente seguro.
Parámetros:
nbytes(int, opcional): Número de bytes aleatorios (predeterminado: 32)
Ejemplo:
{
"name": "secure_token_hex",
"arguments": {
"nbytes": 16
}
}
secure_random_int
Genera un entero aleatorio criptográficamente seguro por debajo de upper_bound.
Parámetros:
upper_bound(int): Límite superior (exclusivo)
Ejemplo:
{
"name": "secure_random_int",
"arguments": {
"upper_bound": 1000
}
}
Consideraciones de Seguridad
Este paquete proporciona tanto funciones pseudoraleatorias estándar (adecuadas para simulaciones, juegos, etc.) como funciones criptográficamente seguras (adecuadas para tokens, claves, etc.):
- Funciones estándar (
random_int,random_float,random_choices,random_shuffle): Usan el módulorandomde Python - rápidas pero no criptográficamente seguras - Funciones seguras (
secure_token_hex,secure_random_int): Usan el módulosecretsde Python - más lentas pero criptográficamente seguras
Desarrollo
Requisitos previos
- Python 3.10+
- Gestor de paquetes uv
Configuración
# 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/
Configuración del Cliente MCP
{
"mcpServers": {
"random-number-dev": {
"command": "uv",
"args": [
"--directory",
"<path_to_your_repo>/random-number-mcp",
"run",
"random-number-mcp"
]
}
}
}
Nota: Reemplaza <path_to_your_repo>/random-number-mcp con la ruta absoluta a tu repositorio clonado.
Compilación
# Build package
uv build
# Test installation
uv run --with dist/*.whl random-number-mcp
Lista de Verificación de Publicación
-
Actualizar Versión:
- Incrementa el número de
versionenpyproject.toml,src/random_number_mcp/__init__.pyyserver.json.
- Incrementa el número de
-
Actualizar Registro de Cambios:
-
Añade una nueva entrada en
CHANGELOG.mdpara la publicación.- Redacta notas con el agente de codificación usando el contexto de
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] - Redacta notas con el agente de codificación usando el contexto de
-
Haz commit junto con cualquier otro cambio pendiente.
-
-
Crear Publicación en GitHub:
- Redacta una nueva publicación en la interfaz de GitHub.
- Etiqueta la publicación usando la interfaz.
- El flujo de trabajo de GitHub compilará y publicará automáticamente el paquete en PyPI.
- Redacta una nueva publicación en la interfaz de GitHub.
Pruebas con MCP Inspector
Para explorar y/o desarrollar este servidor, usa la utilidad npm de 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
Licencia
Licencia MIT - consulta el archivo LICENSE para más detalles.