RandomWeb3MCP

Um serviço de geração de elementos aleatórios baseado no hash de bloco EVM para jogos, finanças, testes e outros campos.

Documentação

RandomWeb3MCP - Serviço de Geração de Elementos Aleatórios Web3

RandomWeb3MCP é um serviço de geração de elementos aleatórios baseado em hash de bloco EVM. O serviço fornece diversas ferramentas de geração de elementos aleatórios que podem ser usadas em jogos, finanças, testes e outros campos.

Recursos

  • Verificabilidade: Todos os números aleatórios são gerados com base no hash da blockchain, garantindo justiça e verificabilidade
  • Diversidade: Suporta vários cenários de geração de números aleatórios, desde números aleatórios básicos até distribuições de probabilidade complexas
  • Confiabilidade: Usa a blockchain como fonte de entropia para garantir a qualidade da aleatoriedade
  • Usabilidade: Fornece interfaces de API simples e intuitivas para fácil integração

Instalação

git clone git@github.com:suxiongye/random-web3-mcp.git
pip install -e .

Início Rápido

Configuração no tico ou Cursor

Adicione a configuração do serviço random-web3-mcp nas configurações do Cursor:

{
  "mcpServers": {
    "random-web3-mcp": {
      "command": "uv",
      "args": ["--directory", "local_repo_directory/zxl-mcp-server", "run", "main.py"]
    }
  }
}

Lista de Ferramentas

generate_basic_random

Nome

Gerador Básico de Números Aleatórios

Função

Gera um número inteiro aleatório dentro do intervalo especificado

Parâmetros

  • min_value (int, opcional): Valor mínimo (inclusivo). Padrão: 0.
  • max_value (int, opcional): Valor máximo (inclusivo). Padrão: 1000000.
  • salt (str, opcional): Valor de salt do número aleatório para maior aleatoriedade. Padrão: ''

Retorno

String JSON contendo o resultado do número aleatório

Cenários de Aplicação

  1. Sistemas de loteria
  2. Números aleatórios em jogos
  3. Geração de IDs aleatórios
  4. Geração de dados de teste

generate_random_array

Nome

Gerador de Array Aleatório

Função

Gera um array aleatório de comprimento especificado

Parâmetros

  • array_length (int, opcional): Comprimento do array. Padrão: 1.
  • min_value (int, opcional): Valor mínimo. Padrão: 0.
  • max_value (int, opcional): Valor máximo. Padrão: 1000000.
  • salt (str, opcional): Valor de salt do número aleatório. Padrão: ''

Retorno

String JSON contendo o array aleatório

Cenários de Aplicação

  1. Geração em lote de números aleatórios
  2. Amostragem aleatória
  3. Geração de conjuntos de dados de teste
  4. Atribuição aleatória de tarefas

generate_random_weighted

Nome

Seletor Aleatório Ponderado

Função

Seleciona aleatoriamente uma opção com base em pesos

Parâmetros

  • options (List[str]): Lista de opções
  • weights (List[int]): Lista de pesos correspondentes (0-1000)
  • salt (str, opcional): Valor de salt do número aleatório. Padrão: ''

Retorno

String JSON contendo o resultado da seleção

Cenários de Aplicação

  1. Sistemas de loteria (prêmios com probabilidades diferentes)
  2. Drops aleatórios (drops de itens ponderados)
  3. Atribuição de tarefas (com base em prioridade)
  4. Testes A/B (grupos de experimento com proporções diferentes)

generate_random_feature

Nome

Alocador Aleatório de Características

Função

Gera um conjunto de valores de características aleatórios para objetos, cada valor de característica dentro do seu intervalo especificado. Os valores de características são codificados em um bitmap, com cada característica ocupando 8 bits

Parâmetros

  • feature_count (int): Número de características a gerar
  • feature_max_values (List[int]): Lista de valores máximos para cada característica, o comprimento deve ser igual a feature_count
  • salt (str, opcional): Valor de salt do número aleatório para maior aleatoriedade. Padrão: ''

Retorno

String JSON contendo valores de características e bitmap, formatada como:

{
    "requestId": "Generated request ID",
    "features": [List of feature values],
    "featureBitmap": Feature bitmap value
}

Cenários de Aplicação

  1. Geração de atributos de personagens de jogos (força, agilidade, inteligência, etc.)
  2. Randomização de atributos de equipamentos (ataque, defesa, velocidade, etc.)
  3. Simulação de características biológicas (genes, traços, etc.)
  4. Geração aleatória de cenários (terreno, clima, ambiente, etc.)

generate_distribution

Nome

Gerador Aleatório de Distribuição de Probabilidade

Função

Gera números aleatórios de acordo com o tipo de distribuição de probabilidade e parâmetros especificados. Suporta várias distribuições de probabilidade comuns.

Parâmetros

  • distribution_type (int): Tipo de distribuição:
    • 1 = Distribuição uniforme (parâmetros: [min_value, max_value])
    • 2 = Distribuição normal (parâmetros: [mean, standard_deviation])
    • 3 = Distribuição exponencial (parâmetros: [scale_parameter])
    • 4 = Distribuição binomial (parâmetros: [trials, success_probability])
  • distribution_parameters (List[float]): Lista de parâmetros da distribuição
  • salt (str, opcional): Valor de salt do número aleatório para maior aleatoriedade. Padrão: ''

Retorno

String JSON contendo valor aleatório e informações da distribuição, formatada como:

{
    "requestId": "Generated request ID",
    "randomValue": Generated random value,
    "distributionMetadata": {
        "distributionType": Distribution type,
        ...Distribution parameters
    }
}

Cenários de Aplicação

  1. Simulação de mercado financeiro (distribuição de retornos, análise de risco)
  2. Simulação de fenômenos naturais (distribuição de partículas, geração de ruído)
  3. Teste de carga (distribuição de comportamento do usuário)
  4. Amostragem estatística (geração de dados experimentais)

generate_random_event

Nome

Gatilho de Evento Aleatório

Função

Dispara uma série de eventos com base em probabilidades fornecidas, cada evento tem uma probabilidade de disparo independente. Usa bitmap para registrar o status do disparo para facilitar o processamento.

Parâmetros

  • event_count (int): Número total de eventos
  • event_probabilities (List[int]): Probabilidade de disparo para cada evento (0-1000, representando 0-100%)
  • salt (str, opcional): Valor de salt do número aleatório para maior aleatoriedade. Padrão: ''

Retorno

String JSON contendo resultados de disparo de eventos, formatada como:

{
    "requestId": "Generated request ID",
    "triggeredEvents": Event trigger bitmap,
    "eventResults": [
        {
            "eventId": Event ID,
            "probability": Trigger probability,
            "triggered": Whether triggered,
            "randomValue": Random value
        },
        ...
    ]
}

Cenários de Aplicação

  1. Eventos aleatórios em jogos (disparar enredo, dropar itens)
  2. Determinação de efeitos de probabilidade (disparo de habilidades, determinação de combos)
  3. Simulação de eventos de risco (previsão de falhas, eventos de acidente)
  4. Determinação de múltiplas condições (eventos de probabilidade combinada)

generate_random_seed

Nome

Gerador de Seed Aleatória

Função

Gera seed aleatória de alta entropia para criptografia ou outros cenários que exigem números aleatórios de alta qualidade. Usa hash da blockchain como fonte de entropia para garantir a aleatoriedade.

Parâmetros

  • seed_length (int): Comprimento da seed a gerar (em bytes)
  • salt (str, opcional): Valor de salt do número aleatório para maior aleatoriedade. Padrão: ''

Retorno

String JSON contendo seed aleatória, formatada como:

{
    "requestId": "Generated request ID",
    "randomSeed": "Random seed in hexadecimal format",
    "entropy": Estimated entropy value
}

Cenários de Aplicação

  1. Geração de chaves (chaves de criptografia, seeds de assinatura)
  2. Tokens de segurança (identificadores de sessão, tokens de autenticação)
  3. Inicialização de números aleatórios (seeds de PRNG, estados iniciais de simulação)
  4. Geração de identificadores únicos (seeds de UUID, identificadores aleatórios)

shuffle_array

Nome

Embaralhador de Array Aleatório

Função

Embaralha aleatoriamente o array de entrada, garantindo que cada elemento tenha probabilidade igual de aparecer em qualquer posição. Usa o algoritmo de embaralhamento Fisher-Yates para garantir justiça.

Parâmetros

  • input_array (List): Array a ser embaralhado, os elementos podem ser de qualquer tipo
  • salt (str, opcional): Valor de salt do número aleatório para maior aleatoriedade. Padrão: ''

Retorno

String JSON contendo o array embaralhado, formatada como:

{
    "requestId": "Generated request ID",
    "shuffledArray": [Shuffled array]
}

Cenários de Aplicação

  1. Embaralhamento em jogos (cartas de baralho, peças de mahjong)
  2. Ordenação aleatória (ordem de perguntas, playlist)
  3. Agrupamento aleatório (atribuição de times, agrupamento de experimentos)
  4. Embaralhamento de dados (conjunto de treinamento, casos de teste)

generate_coordinate

Nome

Gerador de Coordenadas Aleatórias

Função

Gera pontos de coordenadas aleatórios em um espaço dimensional especificado, cada dimensão tem seu próprio intervalo de valores. Suporta geração de coordenadas em qualquer número de dimensões.

Parâmetros

  • dimensions (int): Número de dimensões de coordenadas (1D, 2D, 3D, etc.)
  • min_values (List[float]): Lista de valores mínimos para cada dimensão
  • max_values (List[float]): Lista de valores máximos para cada dimensão
  • coordinate_count (int): Número de pontos de coordenadas a gerar
  • salt (str, opcional): Valor de salt do número aleatório para maior aleatoriedade. Padrão: ''

Retorno

String JSON contendo coordenadas aleatórias, formatada como:

{
    "requestId": "Generated request ID",
    "coordinates": [
        [x1, y1, z1, ...],  # First point coordinates
        [x2, y2, z2, ...],  # Second point coordinates
        ...
    ]
}

Cenários de Aplicação

  1. Posicionamento de objetos em jogos (localizações de NPCs, distribuição de itens)
  2. Sistemas de partículas (geração de efeitos, distribuição de partículas)
  3. Geração de mapas (altura do terreno, distribuição de recursos)
  4. Amostragem espacial (modelagem 3D, análise espacial)

generate_rarity

Nome

Alocador Aleatório de Raridade

Função

Gera pontos de coordenadas aleatórios em um espaço dimensional especificado, cada dimensão tem seu próprio intervalo de valores. Suporta geração de coordenadas em qualquer número de dimensões.

Parâmetros

  • item_count: Quantidade de itens
  • rarity_tiers: Array de níveis de raridade
  • rarity_percentages: Porcentagem de probabilidade para cada nível de raridade
  • guaranteed_minimums: Quantidade garantida para cada nível de raridade (opcional)
  • salt (str, opcional): Valor de salt do número aleatório para maior aleatoriedade. Padrão: ''

Retorno

String JSON contendo array de raridade aleatório, formatada como:

{
    "requestId": "Generated request ID",
    "rarityDistribution": [Rarity allocation result]
}

Cenários de Aplicação

  1. Drops de itens em jogos (equipamentos, itens de raridades diferentes)
  2. Sistemas de loteria (prêmios com probabilidades diferentes)
  3. Alocação de recursos (recursos, materiais de raridades diferentes)
  4. Disparo de eventos aleatórios (eventos de probabilidades diferentes)

Cenários de Aplicação

Desenvolvimento de Jogos

  • Drops aleatórios de itens
  • Geração de atributos de personagens
  • Geração aleatória de mapas
  • Disparo de eventos de probabilidade

Aplicação Financeira

  • Simulação de risco
  • Análise de carteira de investimentos
  • Simulação de comportamento de mercado

Dados de Teste

  • Geração aleatória de casos de teste
  • Dados de teste de carga
  • Amostra de teste de desempenho

Cálculo Científico

  • Simulação de Monte Carlo
  • Simulação de sistemas de partículas
  • Amostragem aleatória

Observações

  1. Toda a geração de números aleatórios depende do hash da blockchain da Trust Chain, por favor garanta uma conexão de rede normal
  2. O intervalo de valores de peso do seletor aleatório ponderado é 0-1000, representando 0-100% de probabilidade
  3. Os parâmetros de distribuição de probabilidade precisam fornecer a lista de parâmetros correta de acordo com o tipo específico de distribuição
  4. É recomendado usar o parâmetro salt em ambiente de produção para aumentar a aleatoriedade

Tratamento de Erros

O serviço pode retornar tipos de erro:

{
    "error": "Error message",
    "code": "Error code",
    "requestId": "Request ID"
}

Códigos de erro comuns:

  • INVALID_PARAMS: Erro de parâmetro
  • NETWORK_ERROR: Erro de conexão de rede
  • CHAIN_ERROR: Erro de acesso à blockchain
  • INTERNAL_ERROR: Erro interno do serviço

Considerações de Desempenho

  • Cada solicitação de geração de números aleatórios precisa acessar a blockchain, o que pode ter um certo atraso
  • É recomendado armazenar em cache números aleatórios usados com frequência
  • Preste atenção à frequência de solicitações ao lidar com um grande número de solicitações concorrentes

Guia de Contribuição

Bem-vindo(a) a enviar Issue e Pull Request para ajudar a melhorar este projeto. Antes de enviar, por favor garanta:

  1. O código está em conformidade com a especificação PEP 8
  2. Casos de teste apropriados são adicionados
  3. Documentos relacionados são atualizados

Licença

Este projeto usa a Licença MIT. Consulte o arquivo LICENSE para obter detalhes.