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

  1. Sistemas de lotería
  2. Números aleatorios en juegos
  3. Generación de ID aleatorios
  4. 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

  1. Generación de números aleatorios por lotes
  2. Muestreo aleatorio
  3. Generación de conjuntos de datos de prueba
  4. 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

  1. Sistemas de lotería (premios con diferentes probabilidades)
  2. Botines aleatorios (caída de objetos ponderada)
  3. Asignación de tareas (basada en prioridad)
  4. 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

  1. Generación de atributos de personajes de juegos (fuerza, agilidad, inteligencia, etc.)
  2. Aleatorización de atributos de equipamiento (ataque, defensa, velocidad, etc.)
  3. Simulación de rasgos biológicos (genes, características, etc.)
  4. 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

  1. Simulación de mercados financieros (distribución de rendimientos, análisis de riesgos)
  2. Simulación de fenómenos naturales (distribución de partículas, generación de ruido)
  3. Pruebas de carga (distribución del comportamiento del usuario)
  4. 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

  1. Eventos aleatorios en juegos (disparar tramas, soltar objetos)
  2. Determinación de efectos de probabilidad (disparo de habilidades, determinación de combos)
  3. Simulación de eventos de riesgo (predicción de fallos, eventos de accidentes)
  4. 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

  1. Generación de claves (claves de cifrado, semillas de firma)
  2. Tokens de seguridad (identificadores de sesión, tokens de autenticación)
  3. Inicialización de números aleatorios (semillas PRNG, estados iniciales de simulación)
  4. 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

  1. Mezcla en juegos (cartas de póker, fichas de mahjong)
  2. Ordenamiento aleatorio (orden de preguntas, lista de reproducción)
  3. Agrupación aleatoria (asignación de equipos, agrupación de experimentos)
  4. 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

  1. Posicionamiento de objetos en juegos (ubicaciones de NPC, distribución de objetos)
  2. Sistemas de partículas (generación de efectos, distribución de partículas)
  3. Generación de mapas (altura del terreno, distribución de recursos)
  4. 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

  1. Caída de objetos en juegos (equipamiento y objetos de diferente rareza)
  2. Sistemas de lotería (premios con diferentes probabilidades)
  3. Asignación de recursos (recursos y materiales de diferente rareza)
  4. 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

  1. 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
  2. El rango de valores de peso del selector aleatorio ponderado es 0-1000, que representa una probabilidad de 0-100%
  3. 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
  4. 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ámetros
  • NETWORK_ERROR: Error de conexión de red
  • CHAIN_ERROR: Error de acceso a la blockchain
  • INTERNAL_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:

  1. Que el código cumpla con la especificación PEP 8
  2. Que se agreguen casos de prueba apropiados
  3. Que se actualicen los documentos relacionados

Licencia

Este proyecto utiliza la Licencia MIT. Consulte el archivo LICENSE para más detalles.