RandomWeb3MCP
Un servicio de generación de elementos aleatorios basado en el hash de bloques EVM para juegos, finanzas, pruebas y otros campos.
Documentación
RandomWeb3MCP - Servicio de Generación de Elementos Aleatorios Web3
RandomWeb3MCP es un servicio de generación de elementos aleatorios basado en el hash de bloques EVM. El servicio proporciona diversas herramientas de generación de elementos aleatorios que pueden utilizarse en juegos, finanzas, pruebas y otros campos.
Características
- Verificabilidad: Todos los números aleatorios se generan basándose en el hash de la blockchain, garantizando equidad y verificabilidad
- Diversidad: Admite varios escenarios de generación de números aleatorios, desde números aleatorios básicos hasta distribuciones de probabilidad complejas
- Fiabilidad: Utiliza la blockchain como fuente de entropía para garantizar la calidad de la aleatoriedad
- Usabilidad: Proporciona interfaces API simples e intuitivas para facilitar la integración
Instalación
git clone git@github.com:suxiongye/random-web3-mcp.git
pip install -e .
Inicio Rápido
Configuración en tico o Cursor
Agregue la configuración del servicio random-web3-mcp en la configuración de Cursor:
{
"mcpServers": {
"random-web3-mcp": {
"command": "uv",
"args": ["--directory", "local_repo_directory/zxl-mcp-server", "run", "main.py"]
}
}
}
Lista de Herramientas
generate_basic_random
Nombre
Generador de Números Aleatorios Básicos
Función
Genera un número entero aleatorio dentro del rango especificado
Parámetros
- min_value (int, opcional): Valor mínimo (inclusive). Por defecto: 0.
- max_value (int, opcional): Valor máximo (inclusive). Por defecto: 1000000.
- salt (str, opcional): Valor de sal aleatorio para mayor aleatoriedad. Por defecto: ''
Retorna
Cadena JSON que contiene el resultado del número aleatorio
Escenarios de Aplicación
- Sistemas de lotería
- Números aleatorios en juegos
- Generación de ID aleatorios
- Generación de datos de prueba
generate_random_array
Nombre
Generador de Arreglos Aleatorios
Función
Genera un arreglo aleatorio de longitud especificada
Parámetros
- array_length (int, opcional): Longitud del arreglo. Por defecto: 1.
- min_value (int, opcional): Valor mínimo. Por defecto: 0.
- max_value (int, opcional): Valor máximo. Por defecto: 1000000.
- salt (str, opcional): Valor de sal aleatorio. Por defecto: ''
Retorna
Cadena JSON que contiene el arreglo aleatorio
Escenarios de Aplicación
- Generación de números aleatorios por lotes
- Muestreo aleatorio
- Generación de conjuntos de datos de prueba
- Asignación aleatoria de tareas
generate_random_weighted
Nombre
Selector Aleatorio Ponderado
Función
Selecciona aleatoriamente una opción basándose en pesos
Parámetros
- options (List[str]): Lista de opciones
- weights (List[int]): Lista de pesos correspondientes (0-1000)
- salt (str, opcional): Valor de sal aleatorio. Por defecto: ''
Retorna
Cadena JSON que contiene el resultado de la selección
Escenarios de Aplicación
- Sistemas de lotería (premios con diferentes probabilidades)
- Botines aleatorios (caída de objetos ponderada)
- Asignación de tareas (basada en prioridad)
- Pruebas A/B (grupos de experimento con diferentes proporciones)
generate_random_feature
Nombre
Asignador de Características Aleatorias
Función
Genera un conjunto de valores de características aleatorias para objetos, cada valor de característica dentro de su rango especificado. Los valores de características se codifican en un mapa de bits, ocupando cada característica 8 bits
Parámetros
- feature_count (int): Número de características a generar
- feature_max_values (List[int]): Lista de valores máximos para cada característica, la longitud debe ser igual a feature_count
- salt (str, opcional): Valor de sal aleatorio para mayor aleatoriedad. Por defecto: ''
Retorna
Cadena JSON que contiene los valores de características y el mapa de bits, con el formato:
{
"requestId": "Generated request ID",
"features": [List of feature values],
"featureBitmap": Feature bitmap value
}
Escenarios de Aplicación
- Generación de atributos de personajes de juegos (fuerza, agilidad, inteligencia, etc.)
- Aleatorización de atributos de equipamiento (ataque, defensa, velocidad, etc.)
- Simulación de rasgos biológicos (genes, características, etc.)
- Generación de escenas aleatorias (terreno, clima, entorno, etc.)
generate_distribution
Nombre
Generador Aleatorio de Distribución de Probabilidad
Función
Genera números aleatorios según el tipo de distribución de probabilidad y los parámetros especificados. Admite varias distribuciones de probabilidad comunes.
Parámetros
- distribution_type (int): Tipo de distribución:
- 1 = Distribución uniforme (parámetros: [min_value, max_value])
- 2 = Distribución normal (parámetros: [mean, standard_deviation])
- 3 = Distribución exponencial (parámetros: [scale_parameter])
- 4 = Distribución binomial (parámetros: [trials, success_probability])
- distribution_parameters (List[float]): Lista de parámetros de distribución
- salt (str, opcional): Valor de sal aleatorio para mayor aleatoriedad. Por defecto: ''
Retorna
Cadena JSON que contiene el valor aleatorio y la información de distribución, con el formato:
{
"requestId": "Generated request ID",
"randomValue": Generated random value,
"distributionMetadata": {
"distributionType": Distribution type,
...Distribution parameters
}
}
Escenarios de Aplicación
- Simulación de mercados financieros (distribución de rendimientos, análisis de riesgos)
- Simulación de fenómenos naturales (distribución de partículas, generación de ruido)
- Pruebas de carga (distribución del comportamiento del usuario)
- Muestreo estadístico (generación de datos experimentales)
generate_random_event
Nombre
Disparador de Eventos Aleatorios
Función
Dispara una serie de eventos basándose en probabilidades dadas, cada evento tiene una probabilidad de disparo independiente. Utiliza un mapa de bits para registrar el estado de disparo para facilitar el procesamiento.
Parámetros
- event_count (int): Número total de eventos
- event_probabilities (List[int]): Probabilidad de disparo para cada evento (0-1000, que representa 0-100%)
- salt (str, opcional): Valor de sal aleatorio para mayor aleatoriedad. Por defecto: ''
Retorna
Cadena JSON que contiene los resultados de disparo de eventos, con el formato:
{
"requestId": "Generated request ID",
"triggeredEvents": Event trigger bitmap,
"eventResults": [
{
"eventId": Event ID,
"probability": Trigger probability,
"triggered": Whether triggered,
"randomValue": Random value
},
...
]
}
Escenarios de Aplicación
- Eventos aleatorios en juegos (disparar tramas, soltar objetos)
- Determinación de efectos de probabilidad (disparo de habilidades, determinación de combos)
- Simulación de eventos de riesgo (predicción de fallos, eventos de accidentes)
- Determinación de múltiples condiciones (eventos de probabilidad combinada)
generate_random_seed
Nombre
Generador de Semillas Aleatorias
Función
Genera una semilla aleatoria de alta entropía para cifrado u otros escenarios que requieren números aleatorios de alta calidad. Utiliza el hash de la blockchain como fuente de entropía para garantizar la aleatoriedad.
Parámetros
- seed_length (int): Longitud de la semilla a generar (en bytes)
- salt (str, opcional): Valor de sal aleatorio para mayor aleatoriedad. Por defecto: ''
Retorna
Cadena JSON que contiene la semilla aleatoria, con el formato:
{
"requestId": "Generated request ID",
"randomSeed": "Random seed in hexadecimal format",
"entropy": Estimated entropy value
}
Escenarios de Aplicación
- Generación de claves (claves de cifrado, semillas de firma)
- Tokens de seguridad (identificadores de sesión, tokens de autenticación)
- Inicialización de números aleatorios (semillas PRNG, estados iniciales de simulación)
- Generación de identificadores únicos (semillas UUID, identificadores aleatorios)
shuffle_array
Nombre
Mezclador de Arreglos Aleatorios
Función
Mezcla aleatoriamente el arreglo de entrada, garantizando que cada elemento tenga la misma probabilidad de aparecer en cualquier posición. Utiliza el algoritmo de mezcla Fisher-Yates para garantizar la equidad.
Parámetros
- input_array (List): Arreglo a mezclar, los elementos pueden ser de cualquier tipo
- salt (str, opcional): Valor de sal aleatorio para mayor aleatoriedad. Por defecto: ''
Retorna
Cadena JSON que contiene el arreglo mezclado, con el formato:
{
"requestId": "Generated request ID",
"shuffledArray": [Shuffled array]
}
Escenarios de Aplicación
- Mezcla en juegos (cartas de póker, fichas de mahjong)
- Ordenamiento aleatorio (orden de preguntas, lista de reproducción)
- Agrupación aleatoria (asignación de equipos, agrupación de experimentos)
- Mezcla de datos (conjunto de entrenamiento, casos de prueba)
generate_coordinate
Nombre
Generador de Coordenadas Aleatorias
Función
Genera puntos de coordenadas aleatorios en un espacio dimensional especificado, cada dimensión tiene su propio rango de valores. Admite la generación de coordenadas en cualquier número de dimensiones.
Parámetros
- dimensions (int): Número de dimensiones de coordenadas (1D, 2D, 3D, etc.)
- min_values (List[float]): Lista de valores mínimos para cada dimensión
- max_values (List[float]): Lista de valores máximos para cada dimensión
- coordinate_count (int): Número de puntos de coordenadas a generar
- salt (str, opcional): Valor de sal aleatorio para mayor aleatoriedad. Por defecto: ''
Retorna
Cadena JSON que contiene las coordenadas aleatorias, con el formato:
{
"requestId": "Generated request ID",
"coordinates": [
[x1, y1, z1, ...], # First point coordinates
[x2, y2, z2, ...], # Second point coordinates
...
]
}
Escenarios de Aplicación
- Posicionamiento de objetos en juegos (ubicaciones de NPC, distribución de objetos)
- Sistemas de partículas (generación de efectos, distribución de partículas)
- Generación de mapas (altura del terreno, distribución de recursos)
- Muestreo espacial (modelado 3D, análisis espacial)
generate_rarity
Nombre
Asignador Aleatorio de Rareza
Función
Genera puntos de coordenadas aleatorios en un espacio dimensional especificado, cada dimensión tiene su propio rango de valores. Admite la generación de coordenadas en cualquier número de dimensiones.
Parámetros
- item_count: Cantidad de proyectos
- rarity_tiers: Arreglo de niveles de rareza
- rarity_percentages: Porcentaje de probabilidad para cada nivel de rareza
- guaranteed_minimums: Cantidad garantizada para cada nivel de rareza (opcional)
- salt (str, opcional): Valor de sal aleatorio para mayor aleatoriedad. Por defecto: ''
Retorna
Cadena JSON que contiene el arreglo de rareza aleatorio, con el formato:
{
"requestId": "Generated request ID",
"rarityDistribution": [Rarity allocation result]
}
Escenarios de Aplicación
- Caída de objetos en juegos (equipamiento y objetos de diferente rareza)
- Sistemas de lotería (premios con diferentes probabilidades)
- Asignación de recursos (recursos y materiales de diferente rareza)
- Disparo de eventos aleatorios (eventos con diferentes probabilidades)
Escenarios de Aplicación
Desarrollo de Juegos
- Caída aleatoria de objetos
- Generación de atributos de personajes
- Generación aleatoria de mapas
- Disparo de eventos de probabilidad
Aplicaciones Financieras
- Simulación de riesgos
- Análisis de carteras de inversión
- Simulación de comportamiento del mercado
Datos de Prueba
- Generación de casos de prueba aleatorios
- Datos de prueba de carga
- Muestras de prueba de rendimiento
Cálculo Científico
- Simulación de Monte Carlo
- Simulación de sistemas de partículas
- Muestreo aleatorio
Notas
- Toda la generación de números aleatorios depende del hash de la blockchain de Trust Chain, asegúrese de tener una conexión de red normal
- El rango de valores de peso del selector aleatorio ponderado es 0-1000, que representa una probabilidad de 0-100%
- Los parámetros de distribución de probabilidad deben proporcionar la lista de parámetros correcta según el tipo de distribución específico
- Se recomienda utilizar el parámetro salt en entornos de producción para aumentar la aleatoriedad
Manejo de Errores
El servicio puede devolver tipos de error:
{
"error": "Error message",
"code": "Error code",
"requestId": "Request ID"
}
Códigos de error comunes:
INVALID_PARAMS: Error de parámetrosNETWORK_ERROR: Error de conexión de redCHAIN_ERROR: Error de acceso a la blockchainINTERNAL_ERROR: Error interno del servicio
Consideraciones de Rendimiento
- Cada solicitud de generación de números aleatorios necesita acceder a la blockchain, lo que puede tener cierto retraso
- Se recomienda almacenar en caché los números aleatorios utilizados con frecuencia
- Preste atención a la frecuencia de solicitudes al manejar una gran cantidad de solicitudes concurrentes
Guía de Contribución
Le invitamos a enviar Issue y Pull Request para ayudar a mejorar este proyecto. Antes de enviar, asegúrese de:
- Que el código cumpla con la especificación PEP 8
- Que se agreguen casos de prueba apropiados
- Que se actualicen los documentos relacionados
Licencia
Este proyecto utiliza la Licencia MIT. Consulte el archivo LICENSE para más detalles.